我有以下my_layout.xml布局
<TableLayout android:id="@+id/tlTable" android:layout_width="match_parent" android:layout_height="wrap_content" android:stretchColumns="1,2" android:layout_marginTop="20dp" >
<TableRow android:id="@+id/trRow" android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:id="@+id/tv1" style="@style/showtext_style" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Row1" android:layout_marginRight="5dp"/>
<ProgressBar android:id="@+id/p2" style="?android:attr/progressBarStyleHorizontal" android:progressDrawable="@drawable/greenprogress" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="5dp" />
<TextView android:id="@+id/tv3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="0" />
</TableRow >
</TableLayout>
我想动态创建10行,其中所有行都是第一行的克隆,除了要将每行的第一个textview(即tv1)的文本更改为具有行号。所以它将是Row1,Row2,Row3 ..... Row10
我怎样才能做到这一点?
答案 0 :(得分:1)
将此代码放入单独的布局中:
<TextView android:id="@+id/tv1" style="@style/showtext_style" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Row1" android:layout_marginRight="5dp"/>
<ProgressBar android:id="@+id/p2" style="?android:attr/progressBarStyleHorizontal" android:progressDrawable="@drawable/greenprogress" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="5dp" />
<TextView android:id="@+id/tv3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="0" />
并通过将此布局扩展到表格行
,使用此代码动态创建表格行答案 1 :(得分:0)
尝试使用ListView而不是您的方法。
答案 2 :(得分:0)
选择一个可以放置行的线性布局。
<LinearLayout
android:id="@+id/list_nearest_aed"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
</LinearLayout>
然后给你的行文件充气:
private View getView(int position, int subPosition) {
View view = getLayoutInflater().inflate(R.layout.row, null);
TextView txtTitel = (TextView) view.findViewById(R.id.txt_titel);
TextView txtSubTitel = (TextView) view.findViewById(R.id.txt_sub_titel);
TextView txtType = (TextView) view.findViewById(R.id.txt_type);
ImageView imgToDetail = (ImageView) view.findViewById(R.id.sub_nearest_aed_img_toDetail);
final TextView txtPosition = (TextView) view.findViewById(R.id.txt_position);
LinearLayout layRaw = (LinearLayout) view.findViewById(R.id.lay_raw);
final double distance = Double.parseDouble(Constant.arrayPin.get(position).get(subPosition).getDistance());
imgToDetail.setVisibility((distance > 2000.00) ? View.INVISIBLE : View.VISIBLE);
txtTitel.setText(Constant.arrayPin.get(position).get(subPosition).getAddress());
txtSubTitel.setText(Constant.arrayPin.get(position).get(subPosition).getAreaOfBuilding());
txtPosition.setText("" + position + "#" + subPosition);
txtPosition.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
String[] txt = txtPosition.getText().toString().split("#");
Intent iDetail = new Intent(mContext, PinDeatil.class);
iDetail.putExtra("position", txt[0]);
iDetail.putExtra("sub_position", Integer.parseInt(txt[1]));
}
});
return view;
}
然后添加线性布局:
for (int i = 0; i < Constant.arrayPin.size(); i++) {
for (int j = 0; j < Constant.arrayPin.get(i).size(); j++) {
listNearestAED.addView(getView(i, j));
}
}