我有一个带有自定义适配器的listview并在onListItemClick上实现。 我为每一行都有一些组件,当点击行中的某些内容时,它会启动一个活动。 我想知道,如果你单击启动活动的按钮而不是随机按下行,我怎么设置?或者最好在每个按钮的适配器中设置onClick吗?
扩展ListActivity:
@Override
protected void onListItemClick(ListView l, View v, int pos, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, pos, id);
Intent i = new Intent(LevelMenu.this,AreaMenu.class);
i.putExtra("level_value", (pos+1));
startActivity(i);
}
}
按钮:
<Button
android:id="@+id/level"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/unlock"
android:layout_centerHorizontal="true"
android:focusable="false"
android:clickable="false"
android:text="Play" />
列表视图:
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:divider="@null"
android:dividerHeight="15dp" />
答案 0 :(得分:0)
如果不了解你的实际行动方式,可能会很困难。你可以做什么,如果你只有一般的onClick,你可以检查以确保View v
是instanceof Button
然后从按钮中获取id,tag或其他任何内容并使用它来启动你的活性。
public void onClick(View v){
if( v instanceof Button){
//a button was clicked!
}
}
答案 1 :(得分:0)
setEnable
中有一个方法baseAdapter
,如果您不希望调用onItemClick
,则只返回false。
对于您的情况,从您的按钮boolean
传递一个onClick
值,根据该值,您可以返回true
false
。