import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class ShowTableResults extends Activity {
String TAG = "tag",
username;
DatabaseHandler dbHandler;
TableLayout resultsTable;
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.d(TAG, "SHOWTABLERESULTS oncreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog_table_results);
username = getIntent().getExtras().getString("username");
resultsTable = (TableLayout) findViewById(R.id.dialog_table_results);
dbHandler = new DatabaseHandler(this);
}
@Override
protected void onResume() {
Log.d(TAG, "SHOWTABLERESULTS onresume");
super.onResume();
for (int j = 0; j < objectNameList.size(); j++) {
View table_row = (TableRow) findViewById(R.id.table_row);//this is null
TextView[] textViewArray = new TextView[9];
TextView t1 = new TextView(this);
TextView t2 = new TextView(this);
TextView t3 = new TextView(this);
TextView t4 = new TextView(this);
TextView t5 = new TextView(this);
TextView t6 = new TextView(this);
TextView t7 = new TextView(this);
TextView t8 = new TextView(this);
TextView t9 = new TextView(this);
t1 = (TextView) table_row.findViewById(R.id.true_matching);
t2 = (TextView) findViewById(R.id.half_matching);
t3 = (TextView) findViewById(R.id.false_matching);
t4 = (TextView) findViewById(R.id.true_counting);
t5 = (TextView) findViewById(R.id.half_counting);
t6 = (TextView) findViewById(R.id.false_counting);
t7 = (TextView) findViewById(R.id.true_choosing);
t8 = (TextView) findViewById(R.id.half_choosing);
t9 = (TextView) findViewById(R.id.false_choosing);
textViewArray[0] = t1;
textViewArray[1] = t2;
textViewArray[2] = t3;
textViewArray[3] = t4;
textViewArray[4] = t5;
textViewArray[5] = t6;
textViewArray[6] = t7;
textViewArray[7] = t8;
textViewArray[8] = t9;
//behavor
for (int i = 1; i < 4; i++) {
//response
for (int k = 1; k < 4; k++) {
Log.d(TAG,"k, , i, j "+k+i+j);
textViewArray[(i-1) * 3 + k-1 ].setText(0);
//when TableRow table_row = (TableRow) findViewById(R.id.table_row),here is null
}
}
resultsTable.addView(table_row);
resultsTable.requestLayout();
}
}
}
这是我的tablelayout:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
android:id="@+id/dialog_table_results"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="1"
xmlns:android="http://schemas.android.com/apk/res/android">
<TableRow
android:id="@+id/headerrow"
>
<TextView
android:text=""
android:layout_weight="0.25"
android:layout_width="0dp"
android:layout_height="wrap_content"
/>
<TextView
android:text="@string/matching"
android:layout_weight="0.25"
android:layout_width="0dp"
android:textAlignment="center"
android:layout_height="wrap_content"/>
<TextView
android:text="@string/counting"
android:layout_width="0dp"
android:layout_height="wrap_content" android:textAlignment="center"
android:layout_weight="0.25"/>
<TextView
android:text="@string/choosing"
android:layout_width="0dp" android:textAlignment="center"
android:layout_height="wrap_content"
android:layout_weight="0.25"/>
</TableRow>
<TableRow
android:id="@+id/subheaderrow"
>
<TextView
android:text=""
android:layout_weight="0.25"
android:layout_width="0dp"
android:layout_height="wrap_content"
/>
<TextView
android:text="@string/trueanswer" android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.0833"/>
<TextView
android:text="@string/halfanswer" android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.0833"/>
<TextView
android:text="@string/wronganswer" android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.0833"/>
<TextView
android:text="@string/trueanswer" android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.0833"/>
<TextView
android:text="@string/halfanswer" android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.0833"/>
<TextView
android:text="@string/wronganswer" android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.0833"/>
<TextView
android:text="@string/trueanswer" android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.0833"/>
<TextView
android:text="@string/halfanswer" android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.0833"/>
<TextView
android:text="@string/wronganswer" android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.0833"/>
</TableRow>
</TableLayout>
这是用于添加活动的表格行,我添加了仍在布局中的tablelayout行,我认为这并不重要。
<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/table_row"
android:layout_height="wrap_content"
android:layout_width="match_parent">
>
<TextView
android:text=""
android:layout_weight="0.25"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/object_name"
/>
<TextView
android:text="@string/trueanswer" android:layout_width="0dp" android:id="@+id/true_choosing"
android:layout_height="wrap_content"
android:layout_weight="0.0833"/>
<TextView
android:text="@string/wronganswer" android:layout_width="0dp" android:id="@+id/half_choosing"
android:layout_height="wrap_content"
android:layout_weight="0.0833"/>
<TextView
android:text="@string/halfanswer" android:layout_width="0dp" android:id="@+id/false_choosing"
android:layout_height="wrap_content"
android:layout_weight="0.0833"/>
<TextView
android:text="@string/trueanswer" android:layout_width="0dp" android:id="@+id/true_matching"
android:layout_height="wrap_content"
android:layout_weight="0.0833"/>
<TextView
android:text="@string/wronganswer" android:layout_width="0dp" android:id="@+id/half_matching"
android:layout_height="wrap_content"
android:layout_weight="0.0833"/>
<TextView
android:text="@string/halfanswer" android:layout_width="0dp" android:id="@+id/false_matching"
android:layout_height="wrap_content"
android:layout_weight="0.0833"/>
<TextView
android:text="@string/trueanswer" android:layout_width="0dp" android:id="@+id/true_counting"
android:layout_height="wrap_content"
android:layout_weight="0.0833"/>
<TextView
android:text="@string/wronganswer" android:layout_width="0dp" android:id="@+id/half_counting"
android:layout_height="wrap_content"
android:layout_weight="0.0833"/>
<TextView
android:text="@string/halfanswer" android:layout_width="0dp" android:id="@+id/false_counting"
android:layout_height="wrap_content"
android:layout_weight="0.0833"/>
</TableRow>
我有一项活动。我想要表格。为此,我有一个包含2行的表格布局和一个带有textview的tablerow布局,每个都有id。
我想通过该ID以编程方式添加文本视图,但我无法得到它。
TableRow table_row = (TableRow) findViewById(R.id.table_row)
t1 = (TextView) findViewById(R.id.true_matching);
textViewArray[(i-1) * 3 + k-1 ].setText(0);
这使得
t1 = (TextView) findViewById(R.id.true_matching);
也是这个。我需要那个textview,我不想使用params。不可能吗?我搜索了但总是加上参数。
也行不通
table_row = getLayoutInflater().inflate(R.layout.table_row, null);
答案 0 :(得分:0)
似乎您的“ dialog_table_results”和“ table_row”位于外部布局文件中, 要在您的活动中使用它们,您必须先将它们充气
resultsTable = getLayoutInflater().inflate(R.layout.dialog_table_results, null);
table_row = getLayoutInflater().inflate(R.layout.table_row, null);
对于您的TextView,必须全部初始化为这样(从table_row)
t1 = (TextView) table_row.findViewById(R.id.true_matching);
最后,您必须像这样将膨胀后的resultTable添加到活动中的现有Layout
containerLayout.addView(resultsTable);
ps:响应为时已晚,但可以帮助处于相同情况的某人。