2

私のコードでは、ボタンを動的に作成しています。複数のボタンを作成すると、次の問題があります。

ここに画像の説明を入力

ボタンが押されたときにどうすれば取得できますか?

私のコード:

    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>

誰でも私を助けることができますか?ありがとう!

4

3 に答える 3

1

すべてのボタンの重みを 1 に設定することもできますが、そうするとすべてのボタンが「押しつぶされた」状態になります。

うまくいくと思います HorizontalScrollFieldか?それが最善の解決策かもしれないと思います。

にラップLinearLayoutして、今HorizontalScrollFieldのようにボタンを追加するLinearLayoutだけです。

于 2012-05-25T19:37:17.377 に答える
0

3 つのボタンを 1 列に配置するのは少し面倒です。別のレイアウト スタイル (三角形のセットアップなど) を試すか、UI デザインをよりコンパクトなものに変更し、ボタンの表示の流れを変更することができます。

于 2012-05-25T21:15:02.893 に答える
0

答えLinearLayout Verticalてくれたみんなに感謝します。:)

于 2012-05-29T19:53:38.547 に答える