2016-02-05 109 views
0

我在第一个方法表行2个TextViews行中如何从另一种方法

final TableLayout tl = (TableLayout) findViewById(R.id.mainLayout); 
final TableRow tr = new TableRow(this); 
tl.setStretchAllColumns(true); 
tl.setShrinkAllColumns(true); 
tr.setGravity(Gravity.CENTER); 
tr.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT,TableRow.LayoutParams.WRAP_CONTENT)); 

    TextView textview = new TextView(this); 
    textview.setText(nameOne); 
    textview.setTextColor(Color.BLACK); 
    textview.setTextSize(20); 
    textview.setGravity(Gravity.START); 
    tr.addView(textview); 


    TextView textview2 = new TextView(this); 
    textview2.setText(nameTwo); 
    textview2.setTextColor(Color.BLACK); 
    textview2.setTextSize(20); 
    textview2.setGravity(Gravity.END); 
    tr.addView(textview2); 

    tl.addView(tr, new TableLayout.LayoutParams(
      TableRow.LayoutParams.FILL_PARENT, 
      TableRow.LayoutParams.WRAP_CONTENT)); 

然后我试图拿到找零的表行/更改第二TextView的,但它不工作。如何获取更改表格行的权限?

public void anotherMethod(){ 
    TableLayout tl = (TableLayout) findViewById(R.id.mainLayout); 
    TableRow t = (TableRow) v; 

    TextView secondTextView = (TextView) t.getChildAt(1); 
    String secondText = secondTextView.getText().toString(); 
    Log.d(LOG_TAG, "second - " + secondText); 
} 

*对不起,我的英语,我希望您`ll明白我的问题

回答

0

我希望下面的代码会帮助你。

public void anotherMethod(){ 
    TableLayout tl = (TableLayout) findViewById(R.id.table_layout); 
    int tableRowIndex = 0; 
    TableRow tr = (TableRow) tl.getChildAt(tableRowIndex); 
    int textViewIndex = 1; 
    TextView textView = (TextView) tr.getChildAt(textViewIndex); 
    textView.setText("New Text"); 
} 
+0

它的工作原理!谢谢! –

+0

不客气! –

0

我将设置ID为像这样的TableRow:

public class yourClass { 

    int tableRowID = 123456; 
    final TableRow tr = new TableRow(this); 


    private void firstMethod() { 

      tr.setId(tableRowID); 
      ...... 

    } 

    private void secondMethod() { 
     TableRow tr = findViewByID(tableRowID); 
     TextView secondTextView = (TextView) tr.getChildAt(1); 
     .... 

    } 
} 

您还可以设置tablerow的标签:

tr.setTag("TableRow"); 
相关问题