如何设置listview onclick?

时间:2011-12-03 08:15:00

标签: android listview

当我运行应用程序并单击列表视图时,会抛出Exception,如下所示:

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();
        }
    });

}

2 个答案:

答案 0 :(得分:1)

很可能您使用相对布局填充列表视图,因此当您单击从onItemClick方法获得的视图时,是相对布局。使用:

view.findViewById(R.id.your_text_view_id); 

获取对textview的引用。

答案 1 :(得分:0)

我想这一行

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

是个问题

您必须将listview ID定义为

@android:id/list 
在xml布局文件中

并将以上行更改为此行:

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