我正在尝试以编程方式创建按钮并将其添加到LinearLayout。
我有以下代码,虽然一切似乎都运行正常但我最终得到一个没有文字的按钮。
for (int i = 0; i < seed.dealer.size(); i++)
{
Button dealer = new Button(this);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, 40);
params.gravity= Gravity.CENTER;
params.setMargins(5, 5, 5, 5);
dealer.setLayoutParams(params);
dealer.setBackgroundResource(R.drawable.rounded_green);
dealer.setTypeface(Typeface.create("sans-serif-light", Typeface.BOLD));
dealer.setTextSize(22);
dealer.setTextColor(Color.parseColor("#F0F0F0"));
dealer.setText(seed.dealer.get(i).name);
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
float logicalDensity = metrics.density;
int px = (int) (200 * logicalDensity + 0.5);
dealer.setMinWidth(px);
px = (int) (350 * logicalDensity + 0.5);
dealer.setMaxWidth(px);
LinearLayout ll = (LinearLayout) findViewById(R.id.dealerContainer);
ll.addView(dealer);
}
答案 0 :(得分:1)
首先检查seed.dealer.get(i).name
是否给出了有效的字符串(不是null
而不是空的)。如果它给出一个有效的字符串,我认为问题在于按钮的文本颜色(Color.parseColor("#F0F0F0")
给出的颜色类似于透明(我没有测试))。因此,请尝试将文字颜色更改为其他颜色,例如Color.BLACK
或Color.RED
类似......
答案 1 :(得分:0)
问题在于这一行:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, 40);
我必须将高度转换为dp,因为按钮高度太小,使得它看起来没有文字。