1

に3を動的に追加EditTextsしましたTableLayout。次に、のエミュレーターのタブでフォーカスを変更します。Eclipse空白かどうかを確認します。空白の場合は、フォーカスを設定する必要がありEditTextます。それ以外の場合は、次に移動する必要があります。

問題は、フォーカスが次のフィールドに移動し、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