我EditTexts
在TableLayout
. 然后在通过模拟器中的选项卡更改焦点时Eclipse
,我检查它们是否为空白,如果为空白,我需要将焦点设置为EditText
else 它应该移动到下一个。
问题是,焦点移动到下一个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();
}
});
}
}
});
}
}