如何在列表视图中访问字符串

时间:2010-10-14 11:45:11

标签: android

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

2 个答案:

答案 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”