Событие кликает на ListView (расширяет ListActivity)

1

У меня есть этот код, но я не вижу действия, когда я нажимаю на элемент из списка. Этот код показывает мне информацию о ArrayList profilesArrayList, но я не знаю, как я могу проверить, какой элемент я выбираю из списка. Кто-нибудь может мне помочь?

profilesArrayList = new ArrayList<Profile>();
    profilesArrayList = copyProfilesToArrayList();
    ProfileAdapter adapter = new ProfileAdapter(
            getApplicationContext(), R.layout.profiles_item, profilesArrayList);

    listViewProfiles = (ListView)findViewById(android.R.id.list);
    listViewProfiles.setAdapter(adapter);

    listViewProfiles.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> a, View v, int position, long id) {
            switch(position) {
            case 0:

                Log.d("cardNumber", profilesArrayList.get(0).getCardNumber());

                break;
  • 0
    Ваше заявление о переключении означает, что вы будете входить в систему только при нажатии на первый элемент в списке. Это действительно то, что вы хотите?
  • 0
    да, это то, что я хочу. для разных предметов у меня разные действия
Теги:
expandablelistview

2 ответа

0
Лучший ответ

Если ваш класс контейнера для этого кода является ListActivity, просто переопределите onListItemClick для этого класса, а не установите его как OnItemClickListener для представления. Это работает для меня

public class ProfileList extends ListActivity
{
    private ArrayList<Profile> profilesArrayList;
    @Override 
    public void onCreate ( Bundle savedInstanceState )
    {
        super.onCreate(savedInstanceState);
        //populate your arraylist

        setListAdapter ( new ArrayAdapter<Profile>() );
    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id)
    {
        super.onListItemClick(l, v, position, id);
        Log.d("cardNumber", profilesArrayList.get(position).getCardNumber());
    }
}
  • 0
    Я должен был попробовать этот метод, но не работает. я не знаю, почему я могу совершать действия, когда я нажимаю на просмотр списка :(
  • 0
    Я думаю, что мы все можем быть немного неясными в том, что не работает для вас. Когда вы находитесь в функции onListItemClick, параметр position - это индекс в вашем массиве, по которому был выполнен щелчок. Итак, в вашем примере, чтобы получить объект Profile которому щелкнули, сделайте profilesArrayList.get(position);
Показать ещё 13 комментариев
0

Попробуйте использовать getSelectedItemPosition() и добавьте INVALID_POSITION в качестве одного из ваших возможных случаев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню