2

尝试为 ListView 创建单击处理程序,但列表不响应单击。
阅读许多当地的回复,但对我没有任何帮助:(

代码:

public class MainActivity extends SherlockListActivity {

private ArrayList<Order> listItems;
private myAdapter myAdapter;
ListView lv;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

lv = getListView();
lv.setTextFilterEnabled(true);
this.myAdapter = new myAdapter(this, R.layout.list_item, listItems);
setListAdapter(myAdapter);
....
}

protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);

    Toast.makeText(getApplicationContext(), "Clicked " + l.getItemAtPosition(position), Toast.LENGTH_SHORT).show();         
}

布局
主要:

<ListView
    android:id="@android:id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fastScrollEnabled="true"        
    android:listSelector="@drawable/list_selector"
    android:smoothScrollbar="true"
    android:textColorHighlight="@android:color/transparent"
    android:background="#000000" >
</ListView>

行:

<ImageView
    android:id="@+id/image"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:clickable="false"
    android:focusable="false"
    android:focusableInTouchMode="false"
    android:paddingBottom="5dp"
    android:paddingLeft="5dp"
    android:paddingRight="5dp"
    android:paddingTop="5dp"
    android:src="@drawable/logo" />

<TextView
    android:id="@+id/text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_toRightOf="@+id/image"
    android:clickable="false"
    android:focusable="false"
    android:focusableInTouchMode="false"
    android:paddingBottom="5dp"
    android:text="Название"
    android:textColor="@android:color/black"
    android:textSize="18dp" />

<TextView
    android:id="@+id/text2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/text"
    android:layout_below="@+id/text"
    android:clickable="false"
    android:focusable="false"
    android:focusableInTouchMode="false"
    android:paddingBottom="5dp"
    android:text="Эпизод, время"
    android:textSize="14dp" />

谢谢你的帮助。
问候

4

2 回答 2

2

如果你想让你的类响应事件,你的类必须实现 OnItemClickListener,然后将它分配给你的列表 list.setOnItemClickListener(this);

于 2013-01-18T08:31:28.290 回答
2

在您的适配器中尝试 setOnClickListener 。OnListItemClick 将不起作用,因为您有 ImageView。未在 ListActivity 上调用 onListItemClick

于 2013-01-18T09:20:46.793 回答