How can I detect focused EditText in android?

前端 未结 8 1047
轮回少年
轮回少年 2020-12-05 06:24

I have a number of EditTexts in my page along with two buttons. I want the user to touch on any one EditText field and click any button to insert a

8条回答
  •  既然无缘
    2020-12-05 06:58

    One thing that you can do is declare a global variable evalue which will tell you which is the last selected EditText by using onTouchListener and then based on the value of evalue, you can set the text value to the edittext by button click. hope you understood.

    the code for it can be as follow:

    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");
                    }
                }
            });
    
        }
    

    Its a logical coding.. not upto the mark.. if you find a better one. then use it. thank you.

提交回复
热议问题