【发布时间】:2014-09-30 05:04:03
【问题描述】:
我有一个编辑文本,我想在单击按钮后将焦点设置在它上,并且在为软键盘按下 enter 或 done 时编辑我的状态后,我想再次移除焦点并向服务器发送请求。
这是我在 XML 中的编辑文本
<EditText
android:id="@+id/time_statusTV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/selectIBT"
android:layout_alignLeft="@+id/profile_name"
android:layout_toLeftOf="@+id/add_timeline_status_IBTN"
android:layout_toRightOf="@+id/image_profile"
android:background="@android:color/transparent"
android:focusable="false"
android:maxLines="2"
android:text="short description of \nyourself that can go\nover 2 lines."
android:textColor="@color/text_color_gray"
android:textSize="18sp" />
点击按钮我在做什么
case R.id.add_timeline_status_IBTN:
time_statusTV.setFocusable(true);
time_statusTV.requestFocus();
break;
这是我的编辑文本键事件
time_statusTV = (EditText) rootView.findViewById(R.id.time_statusTV);
time_statusTV.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if ((event.getAction() == KeyEvent.ACTION_DOWN)
&& (keyCode == KeyEvent.KEYCODE_ENTER)) {
// My code
time_statusTV.clearFocus();
}
return false;
}
});
但是当我点击按钮时没有任何反应。
【问题讨论】:
-
不要使用 requestFocus() 和 clearFocus() ,检查我的答案,它有效
标签: android android-edittext focus