我有一个包含3行的CHOICE_MODE_SINGLE列表。如何放置一个更改任意变量值的onClick事件,以便在单击行1时,例如,X = 1的值,单击行2时,X = 2的值等等?
public class List extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_single_choice, GENRES));
final ListView listView = getListView();
listView.setItemsCanFocus(false);
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
}
private static final String[] GENRES = new String[] {"Barre", "Buffumville","Hodges"};
}
答案 0 :(得分:2)
它非常简单..而不是扩展ListActivity,它可以通过Activity扩展它,只需在XML文件中声明listview,如下所示:
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
在您的活动中初始化listview:
ListView listView=(ListView) findViewById(R.id.list);
按照您的设置适配器后,在代码中设置listview的项目点击监听器,如下所示:
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position,
long id) {
Toast.makeText(getBaseContext(), GENRES[position], Toast.LENGTH_SHORT).show();
}
});
通过这样做,您将获得listview该位置的所需值。 你一定会得到你想要的结果。
答案 1 :(得分:0)
您想在列表视图上设置onItemClickListener。
listView.setOnItemClickListener(
new OnItemClickListener(
@Override
onItemClick(AdapterView<?> listView, View cell, int position, long id) {
// Code to change variables
}
});
答案 2 :(得分:0)
您可以在ListActivity中实施protected void onListItemClick (ListView l, View v, int position, long id)
,位置变量可让您知道点击了哪个项目。