单选列表和onClick事件

时间:2011-04-11 16:00:07

标签: android android-listview

我有一个包含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"};
}

3 个答案:

答案 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),位置变量可让您知道点击了哪个项目。