У меня есть класс MainActivity, который расширяет ListActivity, я установил адаптер для списка через пользовательский адаптер в методе onResume()
.
@Override
protected void onResume()
{
super.onResume();
this.setListAdapter(null);
adapter=new ContactListAdapter(this, R.id.txvNNPersonId, helper.getContacts(sortByname));
setListAdapter(adapter);
}
для обработки щелчка элемента списка, я использую это
protected void onListItemClick(ListView l, View v, int position, long id)
{
RelativeLayout r=(RelativeLayout)v;
TextView txvPersonId=(TextView)r.getChildAt(0);
int iid=Integer.parseInt(txvPersonId.getText().toString());
Intent intent=new Intent(this,ViewContactActivity.class);
intent.putExtra("id", iid);
startActivityForResult(intent, VIEW_RECORD);
//these is not working, these event is not raised, when clicked on listitem click
}
но он не работает, когда щелкаю/касаюсь по элементу с помощью мыши, он работает только тогда, когда я использую его с выбранным элементом и реализую onItemSelectedListener
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
RelativeLayout r=(RelativeLayout)arg1;
TextView txvPersonId=(TextView)r.getChildAt(0);
int id=Integer.parseInt(txvPersonId.getText().toString());
Intent intent=new Intent(this,ViewContactActivity.class);
intent.putExtra("id", id);
startActivityForResult(intent, VIEW_RECORD);
}
и это работает только с клавишами со стрелками на эмуляторе, но на реальных устройствах (обычно) у них нет клавиш со стрелками / навигации, как определить щелчок для элемента списка?
РЕДАКТИРОВАТЬ: row_item.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:longClickable="true"
android:orientation="horizontal">
<TextView android:id="@+id/txvPersonId"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:visibility="invisible" /> -->
<!-- this is name -->
<TextView android:id="@+id/txvPersonName"
android:layout_marginLeft="5dp"
android:layout_width="match_parent"
android:layout_height="40dp"
android:gravity="center_vertical"
android:text="asd"
android:textSize="15sp"
android:paddingBottom="5dp" />
</RelativeLayout>`
Button
илиImageButton
- person Selvin   schedule 20.02.2013OnItemClickListener
, а неOnItemSelectedListener
. Первый предназначен дляListView
s, а второй - дляSpinner
s, со ссылкой onitemclicklistener и onitemselectedlistener адаптера"> stackoverflow.com/questions/4177507/. - person Brent Hronik   schedule 20.02.2013