Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android EditText会自动激活_Android_Focus_Android Edittext - Fatal编程技术网

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>在编辑文本上单击
。。。但它不起作用。你也提出同样的建议?让我们