protected void updateTable() {
// TODO Auto-generated method stub
final TableLayout tl = (TableLayout) findViewById(R.id.settingtable);
tl.removeAllViews();
for(int i=0; i<10; i++) {
final TableRow tablerow = new TableRow(this);
tablerow.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
final TextView deviceedit = new TextView(this);
deviceedit.setText(i+1);
deviceedit.setTextColor(Color.BLACK);
deviceedit.setGravity(Gravity.CENTER);
deviceedit.setTextSize(20);
deviceedit.setBackgroundResource(R.drawable.lighter_cell_shape);
tablerow.addView(deviceedit);
final EditText pondedit = new EditText(this);
pondedit.setText("");
pondedit.setTextColor(Color.BLACK);
pondedit.setGravity(Gravity.CENTER);
pondedit.setBackgroundResource(R.drawable.lighter_cell_shape);
tablerow.addView(pondedit);
pondedit.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});
tl.addView(tablerow);
}
}
当我在生成的edittexts中输入文本时,如何从edittexts获取这些文本,并参考那些textViews,即1-&gt; hai,2-&gt;再见这样。 TextWatcher是否对此上下文有用?我想从edittexts获取数据,并参考TextView将数据保存在数据库中。
答案 0 :(得分:0)
可能你会想要在单独的for循环中执行此操作。
要获取在每个EditText
中输入的文字,您需要这样的内容:
ArrayList<String> textFromEditText = new ArrayList<>();
textFromEditText.add(pondedit.getText().toString());
不要忘记调用.toString();
方法,因为从EditText
获得Editable
类型对象。
在ArrayList中准备好数据之后,只需在另一个for循环中调用它:
for(i = 0;i < textFromEditText.size();i++){
final TextView deviceedit = new TextView(this);
//other code of your textView
deviceedit.setText(textFromEditText.get(i));
}
也许有人可以补充我的答案。