0

我的应用程序包含一个按钮,该按钮在每次单击时动态添加 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");
        }
    });
4

1 回答 1

1

只要有一个计数变量:

int count = 100;

每次创建视图时,setId(count + 1);

获得最后一个视图R.id.count,其他类似。

更优雅的灵魂将是:

每次设置 ID 时,将 id 存储在 ArrayList 中。

于 2013-02-15T10:22:53.563 回答