我有以下布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button android:text="Height"
android:layout_height="wrap_content"
android:id="@+id/buttonHeight"
android:layout_width="wrap_content"
android:layout_weight="15"
android:onClick="OnClickHeight">
</Button>
<Button
android:text="Width"
android:layout_height="wrap_content"
android:id="@+id/buttonWidth"
android:layout_width="wrap_content"
android:layout_toRightOf="@id/buttonHeight"
android:layout_weight="1"
android:onClick="onClickWidth">
</Button>
</LinearLayout>
<ListView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:dividerHeight="1px"
android:drawSelectorOnTop="false"/>
</RelativeLayout>
然后我有一个扩展ListActivity的类,其中我有onClickWidth和onClickHeight方法,例如:
public void onClickWidth(View v)
{
// does stuff
}
但是,这些onClick事件尚未处理。如果我更改类以扩展Activity而不是ListActivity,并从我的布局中删除ListView,那么然后就会检测到它!
我试过设置android:clickable =“true”,玩了android:focusable属性,以及其他各种各样的东西,但我无法让它工作。我该如何解决这个问题,或者这是不允许的?
答案 0 :(得分:0)
答案 1 :(得分:0)
将OnClicklistener放在适配器本身内。
答案 2 :(得分:0)
而不是在布局中使用onClick的东西,你尝试过这样的事情:
Button buttonWidth = (Button)findViewById(R.id.buttonWidth);
buttonWidth.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//do stuff
}
});
然后对buttonHeight执行相同操作。
答案 3 :(得分:0)
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_land);
Button btn = (Button) findViewbyid(R.id.buttonWidth);
btn.setOnClickListener(this);
}
public void onClickWidth(View v)
{
if(v == btn){
//your code...
}
}
答案 4 :(得分:0)
将包含ListView的父布局的 android:descendantFocusability 属性设置为值 blocksDescendants ,如:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:descendantFocusability="blocksDescendants"> ...</LinearLayout>