每个人,实际上我想做的事情与图中显示的相似,
实际上这是我的结帐屏幕的布局,我想动态添加项目,包括' +'和' - '按钮听众,我已经完成了很多堆栈溢出的答案和博客,它们显示了如何动态地向TableLayout添加行,但它们都没有为我工作,我已经使用TableLayout实现了这个结帐屏幕,我发现这只是可以满足的布局我的要求,这是我的checkout_summary.xml布局。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/selection"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Cart Summary"
android:layout_gravity="center"
android:gravity="center_vertical|center_horizontal"
android:textStyle="bold"
android:textSize="28dp"
android:textAlignment="center"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp" />
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/ctbl"
android:layout_gravity="center_horizontal">
<TableRow
android:gravity="center_vertical"
>
<TextView
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Item Name"
android:id="@+id/textView"
android:layout_weight="1"
android:layout_column="1"
android:layout_margin="10dp"
android:textStyle="bold" />
<TextView
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Quantity"
android:layout_weight="1"
android:id="@+id/textView3"
android:layout_column="2"
android:layout_margin="10dp"
android:textStyle="bold" />
<TextView
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Discount"
android:id="@+id/textView4"
android:layout_weight="1"
android:layout_column="3"
android:layout_margin="10dp"
android:textStyle="bold" />
<TextView
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Subtotal"
android:id="@+id/textView5"
android:layout_weight="1"
android:layout_column="4"
android:layout_margin="10dp"
android:textStyle="bold" />
</TableRow>
<TableRow
android:gravity="center_vertical"
>
<TextView
android:text="Kuzhakkattai "
android:id="@+id/textView1"
android:layout_weight="1"
android:layout_column="1"
android:layout_margin="10dp" />
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/non"
android:layout_weight="1"
android:gravity="center_vertical|center|center_horizontal"
android:background="@android:color/transparent">
<Button
android:id="@+id/minus"
android:layout_width="35dp"
android:layout_height="wrap_content"
android:text="-"
android:gravity="center_vertical|center|center_horizontal"
android:textSize="30dp"
android:textStyle="bold"
android:background="@android:color/transparent"
android:textColor="#ffff1220" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text"
android:text="00"
android:gravity="center_vertical|center|center_horizontal"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" />
<Button
android:id="@+id/plus"
android:layout_width="35dp"
android:layout_height="wrap_content"
android:text=" + "
android:gravity="center_vertical|center|center_horizontal"
android:textSize="30dp"
android:textStyle="bold"
android:background="@android:color/transparent"
android:textColor="#090" />
</LinearLayout>
<TextView
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="5% "
android:id="@+id/textView14"
android:layout_weight="1"
android:layout_column="3"
android:layout_margin="10dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Rs. 1425.00 "
android:id="@+id/textView15"
android:layout_weight="1"
android:layout_column="4"
android:layout_margin="10dp" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Kuzhakkattai "
android:id="@+id/textView11"
android:layout_weight="1"
android:layout_column="1"
android:layout_margin="10dp" />
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:id="@+id/non2"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_vertical|center|center_horizontal"
android:background="@android:color/transparent">
<Button
android:id="@+id/minus2"
android:layout_width="35dp"
android:layout_height="wrap_content"
android:text="-"
android:gravity="center_vertical|center|center_horizontal"
android:textSize="30dp"
android:textStyle="bold"
android:background="@android:color/transparent"
android:textColor="#ffff1220" />
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="00"
android:gravity="center_vertical|center|center_horizontal"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" />
<Button
android:id="@+id/plus2"
android:layout_width="35dp"
android:layout_height="wrap_content"
android:text=" + "
android:gravity="center_vertical|center|center_horizontal"
android:textSize="30dp"
android:textStyle="bold"
android:background="@android:color/transparent"
android:textColor="#090" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="5% "
android:id="@+id/textView12"
android:layout_weight="1"
android:layout_column="3"
android:layout_margin="10dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Rs. 1425.00 "
android:id="@+id/textView13"
android:layout_weight="1"
android:layout_column="4"
android:layout_margin="10dp" />
</TableRow>
</TableLayout>
<TextView
android:id="@+id/subtotal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=" Item Total : Rs. 5015.00 "
android:layout_gravity="center|right"
android:gravity="right"
android:textStyle="bold"
android:textSize="20dp"
android:textAlignment="center"
android:layout_margin="5dp" />
<TextView
android:id="@+id/total"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=" Total : Rs. 5015.00 "
android:layout_gravity="center|right"
android:gravity="right"
android:textStyle="bold"
android:textSize="24dp"
android:textAlignment="center"
android:textColor="#000000" />
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:id="@+id/ab"
android:layout_height="wrap_content"
android:gravity="center_vertical|center|center_horizontal"
android:background="@android:color/transparent"
android:layout_marginTop="15dp"
android:layout_marginBottom="15dp">
<Button
android:id="@+id/alkarte"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/text"
android:background="@drawable/button_rounded_corners"
android:text=" Dismiss "
android:gravity="center_vertical|center|center_horizontal"
android:textSize="20dp"
android:textStyle="bold"
android:layout_marginRight="10dp"
android:textColor="#D9534F" />
<Button
android:id="@+id/Buffet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/text"
android:background="@drawable/button_rounded_corners"
android:text=" Checkout "
android:gravity="center_vertical|center|center_horizontal"
android:textSize="20dp"
android:textStyle="bold"
android:layout_marginLeft="10dp" />
</LinearLayout>
所以,我只是想在这个列表中添加项目(TableLayout)以编程方式,通过保留xml文件中提到的所有布局属性,这是我尝试过的JAVA代码,
final Dialog dialog = new Dialog(this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.checout_summary);
dialog.setCanceledOnTouchOutside(false);
TableLayout ctbl = (TableLayout) dialog.findViewById(R.id.ctbl);
int count = 3;
for (HashMap<String, String> hm: menuList) {
//hotelList.add(hm);
TableRow row= new TableRow(this);
TableRow.LayoutParams lp = new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT,TableRow.LayoutParams.MATCH_PARENT);
lp.gravity = Gravity.CENTER;
row.setLayoutParams(lp);
TextView item = new TextView(this);
item.setText("item");
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, 1f);
params.setMargins(10, 10, 10, 10);
item.setLayoutParams(params);
row.addView(item);
LinearLayout LL = new LinearLayout(this);
LinearLayout.LayoutParams LLParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT,1f);
//LLParams.gravity = Gravity.CENTER;
LL.setLayoutParams(LLParams);
Button plus = new Button(this);
LinearLayout.LayoutParams plul = new LinearLayout.LayoutParams(35, LinearLayout.LayoutParams.WRAP_CONTENT);
//plul.gravity = Gravity.CENTER;
plus.setText("+");
plus.setTextSize(30);
plus.setTypeface(null,Typeface.BOLD);
plus.setTextColor(Color.parseColor("#ffff1220"));
plus.setBackgroundColor(Color.TRANSPARENT);
plus.setLayoutParams(plul);
TextView qnty = new TextView(this);
LinearLayout.LayoutParams qntyl = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
//qntyl.gravity = Gravity.CENTER;
qntyl.setMargins(10, 0, 10, 0);
qnty.setLayoutParams(qntyl);
Button minus = new Button(this);
LinearLayout.LayoutParams minusl = new LinearLayout.LayoutParams(35, LinearLayout.LayoutParams.WRAP_CONTENT);
//minusl.gravity = Gravity.CENTER;
minus.setText("-");
minus.setTextSize(30);
minus.setTypeface(null,Typeface.BOLD);
minus.setTextColor(Color.parseColor("#090"));
minus.setBackgroundColor(Color.TRANSPARENT);
minus.setLayoutParams(minusl);
LL.addView(plus);LL.addView(qnty);LL.addView(minus);
row.addView(LL);
TextView disc = new TextView(this);
disc.setText("4"+" %");
LinearLayout.LayoutParams discl = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT,1f);
discl.setMargins(10, 10, 10, 10);
disc.setLayoutParams(discl);
row.addView(disc);
TextView total = new TextView(this);
total.setText("Rs. "+"1502");
LinearLayout.LayoutParams totall = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT,1f);
totall.setMargins(10, 10, 10, 10);
total.setLayoutParams(totall);
row.addView(total);
ctbl.addView(row,count);
count++;
}
但是,这段代码不断崩溃应用程序,因为我没有在模拟器中运行它,所以我没有这个的logcat!
非常感谢任何帮助。
感谢阅读!