2013-02-15 77 views
0

我的应用程序计算动态添加元素数量包括一个按钮,动态地添加EditText上盒上每一次点击。我打算做的是设置一个ID的添加盒各一个。我正在使用setId()方法执行此操作。但我无法引用新添加的框。是否可以设置使用任何的循环然后通过该ID号参考ID?我的代码如下:android系统

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"); 
     } 
    }); 
+2

您声明你的变量'i'的'onclick'方法里面,这样所有的编辑框将有ID为0声明的变量'i'作为类变量可能会解决这个问题......之前也尝试设置ID将其添加到布局... – 2013-02-15 10:24:12

回答

1

只要有一个计数变量:

int count = 100; 
每次创建视图时

setId(count + 1);

得到最后视图R.id.count,同样别人。

更优雅soultion是:

您设定的ID时,都会存储在ID一个ArrayList。