私が持っているもの
行が動的に追加されるテーブル レイアウトを作成しました。列として 2 つの editTexts があります。
私が欲しいもの
- 表の行の 2 番目の editText がフォーカスされ、Enter キーが押された場合:
- 下に表の行が存在する場合、フォーカスはその edittext に設定する必要があります。
- 下にテーブル行が存在しない場合は、テーブル行を追加してからフォーカスを設定する必要があります。
次のようなものが必要だと思います:
If(tablerow exists below){
//do the focusing
}
else{
//add new row
//do the focusing
}
関数addViewを使用して行を追加しました。
public void addView(Context context) {
int dpConv = (int) getResources().getDisplayMetrics().density;
i = i + 1;
try {
txt_itemName[i] = new EditText(context);
txt_itemName[i].setText("itName");
txt_itemName[i].requestFocus();
txt_qty[i] = new EditText(context);
txt_qty[i].setInputType(InputType.TYPE_TEXT_FLAG_CAP_WORDS);
txt_qty[i].setImeOptions(EditorInfo.IME_ACTION_NEXT);
txt_qty[i].setOnEditorActionListener(new OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event)
{
if(actionId == EditorInfo.IME_ACTION_NEXT){
txt_qty[i].clearFocus();
//Need to check conditions here
}
return false;
}
});
tb_row[i] = new TableRow(context);
tb_row[i].addView(txt_itemName[i]);
tb_row[i].addView(txt_qty[i]);
tb_lyt.addView(tb_row[i]);