Списки с одним выбором и события onClick - PullRequest
0 голосов
/ 11 апреля 2011

У меня есть список CHOICE_MODE_SINGLE с 3 строками. Как поместить событие 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 ]

2 голосов
/ 05 июля 2012

Это довольно просто. Вместо того, чтобы расширять ListActivity, расширяйте его на Activity и просто объявляйте listview в вашем XML-файле, как показано ниже:

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

инициализировать просмотр списка в вашей активности:

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

И после настройки адаптера, как вы сделали, установите прослушиватель щелчка элемента списка, как показано ниже в вашем коде:

listView.setOnItemClickListener(new OnItemClickListener() {

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

Делая это, вы получите желаемое значение этой позиции списка. Вы обязательно получите желаемый результат.

0 голосов
/ 11 апреля 2011

Вы можете реализовать protected void onListItemClick (ListView l, View v, int position, long id) в своей ListActivity, а переменная позиции позволяет узнать, по какому элементу щелкнули.

0 голосов
/ 11 апреля 2011

Вы хотите установить onItemClickListener в представлении списка.

listView.setOnItemClickListener(
     new OnItemClickListener(
          @Override
          onItemClick(AdapterView<?> listView, View cell, int position, long id) {
               // Code to change variables
          }
     });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...