我的应用程序包含一个按钮,可在每次点击时动态添加EditText框。我打算做的是为每个添加的框设置一个ID。我是用setId()方法做的。但我无法引用新添加的框。是否可以使用任何循环设置id然后通过该ID号引用?我的代码如下:
super.onCreate(savedInstanceState);
setContentView(R.layout.time_table);
l1 = (LinearLayout) findViewById(R.id.linear1);
edit = (EditText) findViewById(R.id.editText1);
// tv = (TextView)findViewById(R.id.textView1);
b1 = (Button) findViewById(R.id.button1);
b2 = (Button) findViewById(R.id.button2);
b1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
int i = 0;
ed = new EditText(Table.this);
l1.addView(ed);
ed.setHint("Column Name");
ed.setId(i);
i++;
int n = ed.getId();
EditText editn = (EditText) findViewById(n);
editn.setText("new item");
}
});
答案 0 :(得分:1)
只需要一个计数变量:
int count = 100;
每次创建视图时,setId(count + 1);
获取最后一个视图R.id.count
,与其他人一样。
更优雅的灵魂将是:
每次设置ID时,都要将id存储在ArrayList中。