我有ListView的页眉和页脚。标题 - 是一个带有EditTexts和Spinners集的长ScrollView。页脚中有两个按钮。当我单击其中一个EditText时,然后单击页脚的按钮它不会触发。当我点击另一个标题的元素时,我会看到页脚按钮处理程序的结果。当我没有点击这个EditText时,页脚按钮正常工作。我的EditText:
<EditText
android:id="@+id/orderTitle"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:layout_below="@+id/levelSpin"
android:layout_marginTop="30dp"
android:text="Order title(specify)"
android:gravity="center_vertical|center_horizontal" />
我认为editText点击不相关页脚视图的问题。所以我试着在我的按钮的setOnClickListener中做这样的事情:
btnSubmitOrder.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
footer.setFocusableInTouchMode(true);
deadline.setFocusable(false);
orderTitle.setFocusable(false);
header.clearFocus();
btnSubmitOrder.setFocusable(true);
Log.i("new order button","fires");
boolean errorFlag = false;
}
});
但它没有帮助。我也试过这样:
orderTitle.setOnEditorActionListener(new OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
orderTitle.setFocusable(false);
Log.i("onEditorAction","yeah");
}
Log.i("onEditorAction","yeah");
return false;
}
});
当用户的操作完成时,请对此EditText进行不相关,但它也没有帮助。我该如何解决这个问题?
答案 0 :(得分:1)
还有另一种选择,它可以在页脚上设置以下内容。还有另一种方法重载创建,但它没有出现在文档中(至少在我的IDE中没有),我必须检查在线文档:
mylistView.addFooterView(footerView, null, **false**);
其中false告诉页脚不可选择。我自己测试了这个,页脚内的按钮响应触摸。我希望这是一个可接受的答案。
否则如你提到的那样你将不得不使用ontouchlistener作为列表视图和按钮争夺焦点并且listview赢了。这就是为什么当你点击列表视图时按钮不再触发,因为列表视图得到了关注。
答案 1 :(得分:0)
我使用
解决了问题btnSubmitOrder.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN)
{
header.clearFocus();
}
}
});