setText()在焦点的edittext上

时间:2014-10-30 13:06:00

标签: java android android-edittext focus settext

我有4个EditText现在我想将文字放在焦点上,之后我想转到下一个EditText

任何人都知道如何做到这一点?

我想要的是什么:

focussedEditText.setText("hi");
focusOnNextEditText;

4 个答案:

答案 0 :(得分:0)

这可能会有所帮助

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

requestFocus()

答案 1 :(得分:0)

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 {

}});

答案 2 :(得分:0)

我认为这就是你想要的......

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

}

我是否正确...如果是,请参阅this答案以获取更多详细信息..

答案 3 :(得分:0)

你有4个edittext ..这意味着它们是视图组中的视图(Viewgroup是父视图 - 或者是一个有子视图的视图 - 可以是线性的还是realative或框架甚至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());
}

所有这一切都是将文本设置为视图,并告诉视图组查找下一个文本 想要专注并将其赋予它的视图,整个场景再次开始 customfocuses(Viewgroup.getFocusedChild()); View.FOCUS_DOWN也指定了customfocuses(Viewgroup.getFocusedChild()); 搜索焦点视图的方向..

所以,那么你第一次需要它时就会调用它。clearFocus()

{{1}}所做的是从视图中移除焦点......就此而言

注意:ma代码中的Viewgroup将替换为实际的viewgroup而不是类 我做了..

让我知道我是不是很好......周一,先生?洛尔..