Android EditText会自动激活
如果在应用程序启动时按任意字母/数字,Android EditText会自动激活,android,focus,android-edittext,Android,Focus,Android Edittext,如果在应用程序启动时按任意字母/数字,EditText将自动激活并开始搜索相应的字符串 例如,在应用程序启动时,如果用户误按字母“A”,则EditText将获取该字母,并显示从“A”开始的所有结果 实际上,当且仅当用户单击EditText时,它应该被激活,并且应该显示相应的结果,否则不显示 我在main.xml android:focusable="false" android:clickable="true" 在活动类中 @Override public void o
EditText
将自动激活并开始搜索相应的字符串
例如,在应用程序启动时,如果用户误按字母“A”,则EditText
将获取该字母,并显示从“A”开始的所有结果
实际上,当且仅当用户单击EditText
时,它应该被激活,并且应该显示相应的结果,否则不显示
我在main.xml
android:focusable="false"
android:clickable="true"
在活动类中
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
lsym = (ListView) findViewById(R.id.lsym);
edsearch = (EditText) findViewById(R.id.edsearch);
dbM = new DbManager(this);
symbolarr = dbM.getSymbol();
edsearch.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
edsearch.setFocusable(true);
edsearch.requestFocus();
}
});
edsearch.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
//FILTERING LIST
}
});
}
,但它会永久性地将焦点从EditText
上移开,即使单击它也不会再次获得焦点
我做错了什么
任何帮助都是救命稻草您应该为父布局使用以下属性
android:focusable="true"
android:focusableInTouchMode="true"
您的main.xml文件包含
<requestFocus/>
标记或在编程代码中启用
你可以用
requestFocus()方法
当我第一次陈述开发时,我在我的一个应用程序中遇到了这个问题。现在我不明白你问题的本质,但这对我来说很有效 我可能会补充说,这是一个修复方法,只是防止活动启动时出现软键盘。这将防止在活动启动后意外输入钥匙 将此添加到相关活动的java代码中
private void hideKeyboard() {
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
}
我尝试了
editText.setFocusable(true);editText.requestFocus()在我的onClick()
到editText
,但是运气不好……好吧,那么我还没有得到任何答案。@GAMA:你也可以发布活动的onCreate方法吗?我希望我的假设是正确的,你说的是软键盘。是的,其中三个。但这有什么区别呢?当活动启动时,您可以将焦点移到TextView之一。您可以将requestFocus()应用于任何textview。这不会使您不希望的活动启动上的EditText成为焦点。我尝试了tv1.requestFocus()在onCreate()
和editText.requestFocus()中的code>代码>在编辑文本上单击
。。。但它不起作用。你也提出同样的建议?让我们