我有这个恼人的问题。 我的应用程序有2个活动(标签)Activity1:listview,Activity2:editText + listview。 应用程序以Tab1(Activity1)开头。当我打开第二个Activity(带有edittext)时,无论是否选择EditText(可编程),当我点击EditText时,都没有任何反应(应该出现softKeyboard)。 唯一的解决方案是更改活动(单击Tab1小部件)并返回活动2 - 在此选项卡交换后,键盘工作正常。
使用edittext的XML布局的一部分:
<EditText
android:hint="Wyszukaj..."
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="45dp"
android:inputType="textAutoComplete|text"
android:singleLine="true"
android:focusable="true"
android:focusableInTouchMode="true"
>
这里是来自Activity2的2个重写方法
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tab2);
this.db = DataBase.getInstance();
this.ds = DataSource.getInstance();
this.prepareListView();
}
@Override
protected void onResume() {
super.onResume();
this.doubleBackToExitPressedOnce = false;
}
private void prepareListView() {
sbal = this.db.getAllStops();
adapter = new StopListAdapter(this, sbal);
lv = (ListView) findViewById(R.id.tab2list);
lv.setAdapter(adapter);
lv.setOnItemClickListener(onClick);
EditText et = (EditText) findViewById(R.id.editText1);
et.addTextChangedListener(changeWatcher);
registerForContextMenu(lv);
}
您是否有任何想法,在这种情况下XMLcode和活动代码应该如何?
答案 0 :(得分:4)
看到这个答案。它为我解决了同样的问题:
Keyboard not shown when i click on edittextview in android?
并尝试此代码
mEditText.clearFocus();
答案 1 :(得分:0)
尝试从xml中删除关于“可聚焦”的两行。我有一些非常相似的东西,它没有它们的作用
答案 2 :(得分:0)
try {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(
YourEditText.getWindowToken(), 0);
} catch (Exception e) {
e.printStackTrace();
}
尝试使用edittext ...
答案 3 :(得分:0)
为此的解决方法,以显式调用软键盘 在onCreate()和onResume()方法上。
editText.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
if (editText.isEnabled() && editText.isFocusable()) {
editText.post(new Runnable() {
@Override
public void run() {
Context context = getApplicationContext();
final InputMethodManager imm =
(InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editor,InputMethodManager.SHOW_IMPLICIT);
}
});
}
}
});
希望这会有所帮助:)