Могу ли я использовать OnItemClickListener для ListView с OnClickListener для элементов?

Можно ли использовать OnItemClickListener для ListView и OnClickListener для их элементов вместе? Это не обязательно, но в моем случае удобнее разделить функциональность между адаптером (onClick) и действием (onItemClick). И когда я пытаюсь использовать эти слушатели вместе, работает только OnClickListener.

Все, что я делаю, это:

public class ProfilePassengersListActivity extends ConnectActivity
{
    protected ListView lv;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.another_passengers_list_screen);
        anotherPassengersListView = (ListView)findViewById(R.id.anotherPassengersListListViewPassengers);
        lv.setOnItemSelectedListener(openInfoTraveler);
    }
    private android.widget.AdapterView.OnItemClickListener openInfoTraveler = new OnItemClickListener() 
    {
          public void onItemClick(AdapterView<?> parent, View view,
              int position, long id) 
          {
              Log.i(LOGTAG, "in onclick");
          }
    };
}

И на адаптере:

public class ProfilePassengersListAdapter extends ArrayAdapter<String> {
...
@Override
    public View getView(final int position, View convertView, final ViewGroup parent){
        convertView = super.getView(position, convertView, parent);
        final String currObj = list.get(position);
        if(convertView.findViewById(R.id.item_delete_confirmation) == null)
        {
            RelativeLayout container = new RelativeLayout(ctx);
            LayoutInflater inflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            View child = inflater.inflate(R.layout.item_delete_confirmation, null);
            convertView.setTag("main");
            container.setLayoutParams(new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, convertView.getHeight()));
            container.addView(convertView);
            container.addView(child);
            convertView = container;
        }
        if(!preparedToDelete.contains(list.get(position)))
        {
            convertView.findViewWithTag("main").setVisibility(View.VISIBLE);
            convertView.findViewById(R.id.item_delete_confirmation).setVisibility(View.INVISIBLE);
        }
        else
        {
            convertView.findViewWithTag("main").setVisibility(View.GONE);
            convertView.findViewById(R.id.item_delete_confirmation).setVisibility(View.VISIBLE);
            //Log.i("wtf", "prepared to delete: " + currObj);
        }
        final View itemView = convertView;
        /*convertView.setFocusable(false);
        convertView.setFocusableInTouchMode(false);
        convertView.setClickable(true);*/
        convertView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Log.i(LOGTAG, "onClick");
            }
        });
        return convertView;
}

person user3390963    schedule 10.06.2014    source источник
comment
ОСТАВЬТЕ СВОЙ КОД ЗДЕСЬ...   -  person Md Abdul Gafur    schedule 10.06.2014
comment
Почему ты тоже хочешь? Что ты пытаешься сделать?   -  person Social_Engineerer    schedule 10.06.2014
comment
Да, можно включить обоих слушателей. Но проблема в том, как вы включаете их обоих. Вот почему опубликуйте код. Мы узнаем, почему ваш код не работает   -  person Vansi    schedule 10.06.2014
comment
Вы можете написать метод OnClickListener в своем адаптере для своих представлений. и вы также можете написать onItemClickListener для вашего listView в Activity. Я часто использую это в своих приложениях. Если вы покажете свой код, я могу вам помочь.   -  person Oğuzhan Döngül    schedule 10.06.2014


Ответы (1)


Используйте этот метод:

lv.setOnItemClickListener(openInfoTraveler);

вместо этого:

lv.setOnItemSelectedListener(openInfoTraveler);

person Tareq    schedule 10.06.2014
comment
ой, извини. конечно, я использую метод setOnItemClickListener. это линия из экспериментов - person user3390963; 10.06.2014