1

EditTextsTableLayout. 然后在通过模拟器中的选项卡更改焦点时Eclipse,我检查它们是否为空白,如果为空白,我需要将焦点设置为EditTextelse 它应该移动到下一个。

问题是,焦点移动到下一个EditText并且光标允许进入下一个字段。两者都EditTexts被突出显示。有人可以帮助我改变焦点的正确方法吗?

我虽然这可以解决问题,但它不起作用。同样,两者EditTexts都变得集中,因为两者都是空白的,导致两者上的焦点侦听器都被激活。

if(arrEdit.size()>0){
for(EditText etLot: arrEdit){
    etLot.setOnFocusChangeListener(new OnFocusChangeListener() {

        public void onFocusChange(View v, boolean hasFocus) {
            String msg = null;
            EditText et = null;

            if(!hasFocus){
                for(int i=0;i< arrEdit.size();i++){
                    msg= ((TextView)arrTxtVw.get(i)).getText().toString();
                    System.out.println("Focus Changed on "+msg);
                    if((((EditText)v).length()>0)==false && ((EditText)v).getId()== arrEdit.get(i).getId()){
                        System.out.println("size is zero for "+msg);
                        (arrEdit.get(i)).requestFocus();
                        et=(arrEdit.get(i));
                        break;
                    }
                }

                TextView text = (TextView) lyout.findViewById(R.id.text);
                text.setTextSize(15);
                text.setText(msg+"cannot be blank");
                Toast toast = new Toast(ctxref);
                toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
                toast.setDuration(1500);
                toast.setView(lyout);
                toast.show();
                final EditText ettemp = et;
                et.post(new Runnable() {

                    public void run() {
                        ettemp.requestFocus();

                    }
                });
            }

        }
    });

}

}

4

0 回答 0