1

次の問題があります。xmlファイルで宣言せずにボタンとテキストビューを作成したい。必要なボタンの数は常に可変であり、ボタンを使用してテキストビューのオンとオフを切り替えたいと考えています。ボタンとテキストビューは、私が作成したのとまったく同じ順序でlinearLayoutに作成されます。うまくいけば、あなたは私を理解しています

     final LinearLayout linL = (LinearLayout) findViewById (R.id.linearLayout1);


     TextView a1 = new TextView(this);
     a1.setText("Dynamic layouts ftw!");
     a1.setVisibility(View.VISIBLE);
     linL.addView(a1);

これは私がこれまでに試したことです。線形レイアウトはxmlファイルに作成され、すでにいくつかの要素が含まれています。実行しようとするとすべて問題ありませんが、linL.addView(a1)を実行するとすぐにnullポインター例外が発生します

乾杯、クリストフ

4

4 に答える 4

0
    try this structure whenever you want to create any thing dynamically.

    public class PhrasesActivity extends Activity {


        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.phrases);
            LinearLayout linearLayout = (LinearLayout) findViewById(R.id.LinearLayout1);

            LinearLayout L2 = new LinearLayout(this);
            L2.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
            L2.setGravity(Gravity.CENTER);


            TextView a1 = new TextView(this);
            a1.setText("Dynamic layouts ftw!");
            a1.setVisibility(View.VISIBLE);

            Button b1 = new Button(this);
            b1.setText("SUBMIT");

            L2.addView(a1,(new LayoutParams(0,LayoutParams.WRAP_CONTENT,0.8f)));
            L2.addView(b1,(new LayoutParams(0,LayoutParams.WRAP_CONTENT,0.8f)));

            linearLayout.addView(L2);


        }
    }
Let me know you understand or not?
于 2012-11-14T10:39:09.717 に答える
0

setlayoutparams を使用します。役立つかもしれません

TextView txtTag = new TextView(this);
    txtTag.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    txtTag.setText("Button " + (j + 1 + (i * 4));
    txtTag.setId(j + 1 + (i * 4));
    linL.addView(txtTag);
于 2012-11-14T10:20:21.743 に答える
-1

XMLファイルのLinearLayoutにIDを追加する必要があります。

<LinearLayout android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/x5" android:orientation="vertical" >
于 2012-11-14T10:42:06.910 に答える