final String [] tmp = new String[]{"Android", "Google};
ArrayAdapter spinnerArrayAdapter = new ArrayAdapter(getApplicationContext(),android.R.layout.simple_expandable_list_item_1,tmp);
final ListView lv = new ListView(getApplicationContext());
lv.setAdapter(spinnerArrayAdapter);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
int i = lv.getSelectedItemPosition();
Toast toast = Toast.makeText(getApplicationContext(), arg0.toString(),Toast.LENGTH_SHORT);
toast.show();
}
});
我不知道如何通过onItemClick获取正确的元素.... var i总是-1
答案 0 :(得分:2)
您可以使用:
public void onItemClick(AdapterView<?> arg0, View v, int item, long id) {
Toast.makeText(getApplicationContext(), "Clicked on item "+item , Toast.LENGTH_SHORT).show();
}
或者在您的情况下,arg2是列表中项目的位置,arg3是行ID 请参阅:http://developer.android.com/reference/android/widget/AdapterView.OnItemClickListener.html
答案 1 :(得分:0)
在public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
中,arg2是一个int变量,包含被点击项目的位置。
如果您点击列表中的第二项,则您的位置值将为1,考虑第一个项目的位置为0。
点击项目的文字是否是您想要的?然后,说你第二个项目有文字“Item2”。在你的onItemClick()里面,这样做:
String s = ((TextView)v).getText().toString();
String s现在将包含“Item2”