开发者

Single Choice Lists and onClick events

开发者 https://www.devze.com 2023-02-23 11:40 出处:网络
I have a CHOICE_MODE_SINGLE list with 3 rows.How do I place an onClick event that changes the value of an arbitrary variable, so that if Row 1 is clicked, say, the value of X = 1, and when Row 2 is cl

I have a CHOICE_MODE_SINGLE list with 3 rows. How do I place an onClick event that changes the value of an arbitrary variable, so that if Row 1 is clicked, say, the value of X = 1, and when Row 2 is clicked, the value of X = 2, etc.?

    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"};
}


Its quite simple..rather than extending ListActivity extend it by Activity and just declare listview in your XML file as below:

<ListView 
        android:id="@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>

initialize listview in your activity:

ListView listView=(ListView) findViewById(R.id.list);

And after setting adapter as you did,set the item click listener of the listview as below in your code:

listView.setOnItemClickListener(new OnItemClickListener() {

            public void onItemClick(AdapterView<?> parent, View v, int position,
                    long id) {
                Toast.makeText(getBaseContext(), GENRES[position], Toast.LENGTH_SHORT).show();
            }
        });

By doing this you will get the desired value of that position of listview. You will surely get the result you want.


You want to set the onItemClickListener on the list view.

listView.setOnItemClickListener(
     new OnItemClickListener(
          @Override
          onItemClick(AdapterView<?> listView, View cell, int position, long id) {
               // Code to change variables
          }
     });


You can implement protected void onListItemClick (ListView l, View v, int position, long id) in your ListActivity, and the position variable lets you know which item was clicked.

0

精彩评论

暂无评论...
验证码 换一张
取 消