首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在安卓系统中检测到聚焦的EditText?

如何在安卓系统中检测到聚焦的EditText?
EN

Stack Overflow用户
提问于 2013-06-27 19:29:54
回答 8查看 99.8K关注 0票数 47

我的页面中有许多EditText元素以及两个按钮。我希望用户触摸任何一个EditText字段并单击任何按钮,以将某个值插入到他们所触摸的EditText字段中。不允许使用键盘输入。请帮我做这件事。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2013-06-27 20:11:31

您可以做的一件事是声明一个全局变量evalue,它将通过使用onTouchListener告诉您哪个是编辑文本,然后根据evalue的值,您可以通过单击按钮将文本值设置为edittext。希望你能理解。

其代码可以如下所示:

EditText e1,e2;
    Button b1,b2;
    String evalue;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        e1=(EditText)findViewById(R.id.editText1);
        e2=(EditText)findViewById(R.id.editText2);
        b1=(Button)findViewById(R.id.button1);
        b2=(Button)findViewById(R.id.button2);

        e1.setOnTouchListener(new View.OnTouchListener()
        {
            public boolean onTouch(View arg0, MotionEvent arg1)
            {
                evalue="1";
                return false;
            }
        });

        e2.setOnTouchListener(new View.OnTouchListener()
        {
            public boolean onTouch(View arg0, MotionEvent arg1)
            {
                evalue="2";
                return false;
            }
        });
        b1.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View arg0) {
                if(evalue=="1")
                {
                    e1.setText("yes");
                }
                if(evalue=="2")
                {
                    e2.setText("yes");
                }
            }
        });


        b2.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View arg0) {
                if(evalue=="1")
                {
                    e1.setText("No");
                }
                if(evalue=="2")
                {
                    e2.setText("No");
                }
            }
        });

    }

这是一种逻辑编码..没有达到标准..如果你找到更好的。那就用它吧。谢谢。

票数 26
EN

Stack Overflow用户

发布于 2013-06-27 19:36:56

您可以使用View.OnFocusChangeListener来检测任何视图(edittext)是否获得或失去焦点。

for (EditText view : editList){
   view.setOnFocusChangeListener(focusListener);
}
....
private OnFocusChangeListener focusListener = new OnFocusChangeListener() {
    public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus){
             focusedView = v;
        } else {
             focusedView  = null;
        }
    }
}

它放在你的活动或片段中,或者你拥有EditTexts的任何地方。....只是说你可以把它放在类中的任何地方。显然,您需要创建一个包含它们的数组,也就是editList

票数 64
EN

Stack Overflow用户

发布于 2015-12-23 15:46:33

这对我很有效。它返回一个布尔值。

myEditText.hasFocus()
票数 39
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17341946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档