我正在构建一个电子商务应用的购物车视图,我想要构建一个视图,其中我的产品名称应该是粗体和更大的文本大小,并且根据该文本大小的产品的小描述应该在那里,但我面临的问题是在这两个textViews之间打破一条线。我的代码是这样的
for (int j=0;j< productsize;j++){
String pName = ct.getProducts(j).getProductName();
int pPrice = ct.getProducts(j).getProductPrice();
String desc = ct.getProducts(j).getProductDesc();
LinearLayout la = new LinearLayout(this);
la.setOrientation(LinearLayout.HORIZONTAL);
TextView tv = new TextView(this);
tv.setText(" " + pName + " ");//first textView
tv.setTypeface(null, Typeface.BOLD);
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 22F);
la.addView(tv);
TextView des = new TextView(this);//second textView
des.setText("" + desc + "");
la.addView(des);
final Button btn1 = new Button(this);
btn1.setId(j+1);
btn1.setText("Add to Cart");
btn1.setLayoutParams(params);
final int index = j;
btn1.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v) {
// TODO Auto-generated method stub
Log.i("TAG", "index:"+index);
ModelProducts productsObject = ct.getProducts(index);
if(!ct.getCart().CheckProductInCart(productsObject)){
btn1.setText("Item Added");
ct.getCart().setProducts(productsObject);
Toast.makeText(getApplicationContext(), "New CartSize:" +ct.getCart().getCartsize(),Toast.LENGTH_LONG).show();
}else{
Toast.makeText(getApplicationContext(), "Products"+(index+1)+"Already Added",Toast.LENGTH_LONG ).show();
}
}
});
la.addView(btn1);
layout.addView(la);
}
任何人都可以帮助我,请提前感谢。
答案 0 :(得分:1)
尝试更改此行:
la.setOrientation(LinearLayout.VERTICAL);
到此:
TextViews
<强>更新强>
如果您希望两个Button
垂直对齐且RelativeLayout
水平对齐,则需要使用LinearLayouts
或两个LinearLayouts
。
使用两个<LinearLayout with horizontal orientation....
.....
<LinearLayout with vertical orientation....
...
<TextView.....
<TextView .....
</LinearLayout>
<Button .....
</LinearLayout>
,您可以尝试形成如下结构:
LinearLayout
这样,水平方向的根LinearLayout
将有两个孩子,即Button
垂直方向和{{1}}。
我希望这会对你有所帮助。
答案 1 :(得分:0)
尝试更改此
la.setOrientation(LinearLayout.HORIZONTAL);
到这个
la.setOrientation(LinearLayout.VERTICAL);
尽管如此,我不知道是否有必要以编程方式构建您的UI,但您可以使用布局XML轻松/更好地实现标题 - 字幕文本视图,您可以在其中预览UI的外观。 / p>