我的长期目标是在Android应用中创建一个可点击的表,该表是从类对象列表动态制作的。我的短期目标是弄清楚如何获得一张桌子。现在我已经在设计视图中定义了一个TableLayout,并试图以动态/编程方式填充它。
代码:
XML文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.example.nick.timelogger.itemTable"
android:background="#ffffffff">
<TableLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:id="@+id/itemTable">
</TableLayout>
</RelativeLayout>
类 - OnCreate方法(现在我只是尝试添加一行以使其显示在我的应用上):
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_item_table);
RelativeLayout.LayoutParams tableParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
TableRow.LayoutParams rowParams = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT);
TableLayout itemTable = (TableLayout)findViewById(R.id.itemTable);
itemTable.setLayoutParams(tableParams);
TableRow header = new TableRow(getApplicationContext());
header.setLayoutParams(tableParams);
TextView itemName = new TextView(getApplicationContext());
itemName.setText("Activity Name");
itemName.setTextColor(Color.BLACK);
itemName.setTextSize(16f);
itemName.setTypeface(Typeface.DEFAULT);
TextView status = new TextView(getApplicationContext());
status.setText("Status");
status.setTextColor(Color.BLACK);
status.setTextSize(16f);
status.setTypeface(Typeface.DEFAULT);;
TextView elapsed = new TextView(getApplicationContext());
elapsed.setText("Elapsed Time");
elapsed.setTextColor(Color.BLACK);
elapsed.setTextSize(16f);
elapsed.setTypeface(Typeface.DEFAULT);
header.addView(itemName,(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT)));
header.addView(status,(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT)));
header.addView(elapsed,(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT)));
itemTable.addView(header);
}
我错过了什么?
答案 0 :(得分:0)
我在代码中发现了两个问题:
1)首先,我为rowparams添加了tableparams 2)其次,我使用了另一种形式的'header.addView',取出第二个参数,这似乎有效。
似乎Android变化如此之快,以至于从旧的Stack答案中提取代码并不总是正常工作。