2011-12-03 136 views
0

當我運行應用程序,並單擊列表視圖,拋出一個Exception這樣的:如何設置listview onclick?

12-03 07:57:34.258: E/AndroidRuntime(681): java.lang.ClassCastException: android.widget.RelativeLayout 

主要的代碼是:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    this.setTitle("BaseAdapter for ListView"); 
    listView = (ListView) this.findViewById(R.id.MyListView); 
    listView.setAdapter(new ListViewAdapter(titles, texts, resIds)); 

    listView.setClickable(true); 
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 
      Toast.makeText(getApplicationContext(), 
        ((TextView) view).getText(), Toast.LENGTH_SHORT).show(); 
     } 
    }); 

} 

回答

1

則很可能填充列表視圖相對佈局,所以當你點擊你從onItemClick方法得到的視圖是一個相對佈局。使用:

view.findViewById(R.id.your_text_view_id); 

以獲得對textview的引用。

0

我覺得這條線

listView = (ListView) this.findViewById(R.id.MyListView); 

是一個問題

你必須定義列表視圖id作爲

@android:id/list 
在XML佈局文件

及以上線路更改爲這一個:

listView = (ListView) this.findViewById(R.id.list);