@Override
public void onItemClick(AdapterView<?> av, View v, int position, long l) {
// TODO Auto-generated method stub
switch(av.getId()){
case R.id.ipod_music_item_listview:
ListView listView = (ListView) av;
//Map<String, Object> data = (HashMap<String, Object>) listView.getItemAtPosition(position);
//String text = (String) data.get("item1_bigtv");
View mView = listView.getChildAt(position);
TextView text1 = (TextView) mView.findViewById(R.id.ipod_music_name);
//musicName=((TextView) v).getText().toString();
musicName=text1.getText().toString();
Toast.makeText(getBaseContext(), musicName, Toast.LENGTH_LONG).show();
public void onItemClick(AdapterView<?> av, View v, int position, long l) {
// TODO Auto-generated method stub
switch(av.getId()){
case R.id.ipod_music_item_listview:
ListView listView = (ListView) av;
//Map<String, Object> data = (HashMap<String, Object>) listView.getItemAtPosition(position);
//String text = (String) data.get("item1_bigtv");
View mView = listView.getChildAt(position);
TextView text1 = (TextView) mView.findViewById(R.id.ipod_music_name);
//musicName=((TextView) v).getText().toString();
musicName=text1.getText().toString();
Toast.makeText(getBaseContext(), musicName, Toast.LENGTH_LONG).show();
break;
。。。。。。
}
这里我是获取listview里item中的textview的值。因为每个listview的item有不止一个控件,这些控件是放在一个线性布局或者其他布局中。所以在获取textview时就不能简单的用以下方法了:TextView tv=(TextView) v;如果listview的对应layout配置文件里只有一个textview的是可以这样使用的。
通过listview来获取item的view,然后通过id确定要获取的控件。这里ipod_music_name是listview对应layout布局里textview的id。这样就可以正确的获取点击的控件了。