在我的代码中,我使用dinamically创建按钮。当我创建多个按钮时出现以下问题:
当按钮被按下时,如何获得它?
我的代码:
private void showGlossary(String ContentTab) {
LinearLayout layout;
LinearLayout.LayoutParams p;
layout = (LinearLayout) findViewById(R.id.GlossaryTab1);
p = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.FILL_PARENT
);
Glossary = (TextView) findViewById(R.id.glossary);
Glossary.setText("Glossário:");
while (ContentTab.indexOf("<gloss") != -1) {
ContentTab = ContentTab.substring(ContentTab.indexOf("<gloss"));
uri = ContentTab.substring(ContentTab.indexOf("<gloss") + 1, ContentTab.indexOf(">"));
Button myButton = new Button(this);
myButton.setText(Html.fromHtml(ContentTab.substring(ContentTab.indexOf(">") + 1, ContentTab.indexOf("</gloss>"))));
myButton.setLayoutParams(p);
myButton.setContentDescription(uri);
layout.addView(myButton);
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{
Toast.makeText(ShowPhytoterapicActivity.this, Html.fromHtml(getGlossaryItem(view.getContentDescription().toString())), Toast.LENGTH_LONG).show();
}
});
if(ContentTab.indexOf("</gloss>") != -1)
ContentTab = ContentTab.substring(ContentTab.indexOf("</gloss>") + 9);
}
}
我的XML:
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:id="@+id/GlossaryTab1"
android:orientation="horizontal"
>
</LinearLayout>
任何人都可以帮助我吗?谢谢!
答案 0 :(得分:1)
您可以将所有按钮的权重设置为1,但这会导致所有按钮变为“Squished”。
你认为HorizontalScrollField
会起作用吗?我认为这可能是最好的解决方案。
只需将LinearLayout
包裹在HorizontalScrollField
中,然后像现在一样将按钮添加到LinearLayout
。
答案 1 :(得分:0)
在一行中安装3个按钮似乎有点乱。您可以尝试不同的布局样式,可能是三角形设置,或者将UI设计更改为更紧凑的内容,并更改按钮的显示方式。
答案 2 :(得分:0)
我做了一个LinearLayout Vertical
,感谢大家的答案。 :)