に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();
}
});
}
}
});
}
}