2013-02-20 59 views
0
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->海,2->再见这样。 TextWatcher是否适用于此上下文?我想从edittext中获取数据并参考TextView将数据保存在数据库中。我想要实现textwatcher动态生成edittexts并希望在这些edittexts

回答

0

可能你会想在分离的for循环中做到这一点。

,并获得在每个EditText输入的文字,你需要这样的:

ArrayList<String> textFromEditText = new ArrayList<>(); 

textFromEditText.add(pondedit.getText().toString()); 

不要忘记调用.toString();方法,因为从EditText你得到一个Editable类型的对象。

一旦你的数据准备好ArrayList中只是称这种现象为另一个循环:

for(i = 0;i < textFromEditText.size();i++){ 
    final TextView deviceedit = new TextView(this); 

    //other code of your textView 


    deviceedit.setText(textFromEditText.get(i)); 

} 

也许有人可以补充我的回答。

+0

忘记为你澄清这一点你每次动态创建EditText时都会有不同的内存引用。帮助您为每个创建的EditText创建不同的'pondedit.addTextChangedListener(new TextWatcher()...);'。 – Eliud 2013-02-22 01:09:13

+0

这不起作用 – 2014-10-31 15:29:41