2011-03-10 54 views
0

我仍然有一個ListView點擊處理程序的問題。該事件沒有被解僱,所以 我沒有看到調試信息。Android ListView - 點擊處理程序不工作

我想,而不是使用ListActivity

這裏再一次的活動是我的代碼:

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    // Capture our button from layout 
    //appState = ((MyApp)getApplicationContext()); 
    setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
    //requestWindowFeature(Window.FEATURE_LEFT_ICON); 




    setContentView(R.layout.listr); 


    //setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, R.drawable.fishicon); 

    setupDB(); 
    populateList3(); 



    ListView lv = (ListView) findViewById(R.id.list); 


    // lv.setClickable(true); 


    lv.setOnItemClickListener(new OnItemClickListener() { 

     //@Override 

     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

      Toast.makeText(ListRecords.this,"Clicked!", Toast.LENGTH_LONG).show(); 
     } 
    }); 

下面是XML文件:

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:orientation="vertical" 
    android:gravity="center" 
    android:layout_height="fill_parent"> 



    <!--Put form controls here--> 
<ListView 
    android:id="@+id/list" 
    android:layout_width="wrap_content" 
    android:layout_height="400dp" /> 
    <Button 
     android:id="@+id/previousbutton" 
     android:gravity="center_horizontal" 
     android:layout_width = "fill_parent" 
     android:layout_height = "fill_parent" 

     android:text="Previous Menu"/> 
</LinearLayout> 

我想不通爲什麼點擊監聽器不管用。

感謝 邁克

+0

你點擊按鈕或列表中的項目?你如何填寫名單? – 2011-03-10 16:42:53

回答

1

,除非你確定如何使用它們,不要使用內嵌的聽衆 - 他們可以走出去的範圍,並引起各種各樣的問題。

嘗試......

public class MyActivity extends Activity 
    implements AdapterView.onItemClickListener { 

    @Override 
    public void onCreate (Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.listr); 

     ListView lv = (ListView) findViewById(R.id.list); 
     lv.setOnItemClickListener(this); 

     // Do whatever else you need to do 
    } 

    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     // Do whatever 
    } 
} 
+0

謝謝。事實證明,問題出在我的佈局文件(xml)中,它提供了列表中行的定義。我有一個ScrollLayout設置它應該是LinearLayout。 – eljainc 2011-03-11 23:04:26

0

我會取消對@Override。這是爲了保證您的簽名與您試圖覆蓋的方法相匹配。

如果您的方法簽名是正確的,那麼我懷疑問題在於populateList3()。你可以發佈該代碼嗎?