listView项点击事件没有触发
问题描述:
我遇到了使用listview的问题,当我点击它时什么都没有发生。我想为它点击列表视图项目来做一个敬酒,所以我知道它正在被点击。我一直在努力/研究一段时间,一无所获。有人会介意看看我是否错过了我刚刚忽略的一些东西吗?提前谢谢了!listView项点击事件没有触发
这里是我的类:
public class MyCar extends Activity {
/**
* Called when the activity is first created.
*/
public ListView mylistView;
String carInfo;
private ArrayAdapter<String> mylistAdapter;
ArrayList<String> arrayListCar = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mycar);
mylistView = (ListView) findViewById(R.id.listView);
arrayListCar = new ArrayList<String>();
//Just had to remove setting this adapter 2 times. Took out line below to fix.
mylistView.setAdapter(mylistAdapter);
mylistView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
String item = ((TextView) view).getText().toString();
Toast.makeText(getBaseContext(), item, Toast.LENGTH_LONG).show();
}
});
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
carInfo = trySomethin();
fillList();
}
public void fillList() {
String make = "";
String model = "";
String[] pieces = carInfo.split("\"");
make = pieces[3];
model = pieces[7];
ArrayList<String> carList = new ArrayList<String>();
carList.add(make + " " + model);
// Create ArrayAdapter using the car list.
mylistAdapter = new ArrayAdapter<String>(MyCar.this, android.R.layout.simple_list_item_single_choice, carList);
mylistView.setAdapter(mylistAdapter);
mylistAdapter.notifyDataSetChanged();
}
}
答
Try this
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// ListView Clicked item index
int itemPosition = position;
// ListView Clicked item value
String itemValue = (String) listView.getItemAtPosition(position);
// Show Alert
Toast.makeText(getApplicationContext(),
"Position :"+itemPosition+" ListItem : " +itemValue , Toast.LENGTH_LONG)
.show();
}
});
答
,如果你有ListView项的任何元素改变这个为他们
android:focusable="false"
,如果你正在改变任何元素运行时可见性,每次更改其可见性时,都必须以编程方式处理焦点。
你没有看到“吐司”? – Raghunandan 2014-12-03 05:36:00
是的,我没有看到烤面包。当我点击它时,列表视图保持在那里,我可以点击它10次,什么也没有发生。 – Shawn 2014-12-03 05:36:16
哇,我很抱歉浪费时间,我没有看到我将适配器设置为mylistView 2次。删除了onCreate中的一个,现在可以使用。感谢您的时间! – Shawn 2014-12-03 05:42:34