Java 聚焦的edittext上的setText()

Java 聚焦的edittext上的setText(),java,android,android-edittext,focus,settext,Java,Android,Android Edittext,Focus,Settext,我有4个EditText,现在我想把文本放在聚焦的文本上,然后我想转到下一个EditText 有人知道我该怎么做吗 我想要的是: focussedEditText.setText("hi"); focusOnNextEditText; 这可能会有帮助 android.view.View.OnFocusChangeListener; edittext.setOnFocusChangeListener(myEditTextFocus); 还有requestFocus()。我想这就是你想要的 ed

我有4个
EditText
,现在我想把文本放在聚焦的文本上,然后我想转到下一个
EditText

有人知道我该怎么做吗

我想要的是:

focussedEditText.setText("hi");
focusOnNextEditText;
这可能会有帮助

android.view.View.OnFocusChangeListener;
edittext.setOnFocusChangeListener(myEditTextFocus);

还有
requestFocus()

我想这就是你想要的

edit_Text.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus)
{
    edit_Text.setText("Your text");
    Second_edit_text.requestFocus();

 }else {

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

}

我说的对吗。。。如果是,请参考答案了解更多详情。

您有4个编辑文本。。这意味着它们是视图组中的视图(视图组是父视图-或具有子视图的视图-可以是线性的、现实的或甚至是框架的viewflipper布局)?所以呢,

Viewgroup.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View arg0, MotionEvent arg1) {
            // TODO Auto-generated method stub
            Viewgroup.getFocusedChild().setText("Ellt's solution works");
            return false;
        }
    });
纠正愚蠢的错误

编辑1:你所要做的就是覆盖它(但是对于一个视图组,它只被调用一次),当它获得焦点时。。但在那之后,它不会松开它

你可以用你自己的方式来实现它,我不知道你的代码是如何构造的,但是你可以通过
Viewgroup.getFocusedChild()
来获得焦点子对象,你也可以这样做

private void customfocuses(View v){   // the view here can be replaced with EditText directly- but for wider range i used View   
   v.setText("Ellt's solution works");
   Viewgroup.focusSearch(v,View.FOCUS_DOWN);
   v.clearFocus(); // remove if you want..just wanted to follow code structure..
   customfocuses(Viewgroup.getFocusedChild());
}
它所做的只是将文本设置为视图,并告诉视图组查找下一个文本 视图需要焦点并将其交给它,整个场景将以
CustomFocuss(Viewgroup.getFocusedChild())视图。焦点向下
指定 搜索焦点视图的方向

所以,当你第一次需要它的时候,就给它打电话<代码>自定义焦点(Viewgroup.getFocusedChild())

clearFocus()
的作用是从视图中移除焦点。。就这样

注意:ma代码中的Viewgroup将替换为实际Viewgroup,而不是类as 是的


如果我觉得好就告诉我好吗,先生?哈哈…

一篇编辑文本在被调情时有焦点(我知道你已经知道了)。。但我认为你有4个edittext文本,其中任何一个都可以获得焦点。对吗?是的,这是我想要的,但是有一个OnFocusChangeListener,因为你从来没有接触过edittext:如果你解释一下你在这里做了什么,pIt会很有帮助。