0

ここでいくつかの同様の問題を読んだ後、私はまだここに私の質問を投稿することを余儀なくされています。

SQLiteデータベース内のゲームの数に関連して一定量のボタンを追加して表示する必要があるアクティビティがあります。このアクティビティはスクロール可能である必要があります。

だから私はこのような私の基本的なlayout-xml-fileを持っています:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingTop="5dp"
    android:paddingBottom="5dp"
    android:paddingLeft="15dp"
    android:paddingRight="15dp" >
    <RelativeLayout 
        android:id="@+id/rel_all_football" 
        android:orientation="vertical"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"        
        >

        <TextView 
            style="@style/TextHeader"
            android:id="@+id/tv_all_football_header"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/all_games"
            />
        <View   
            android:id="@+id/v_cond_line1"
            android:layout_below="@+id/tv_all_football_header"
            android:layout_height="1dp"
            android:layout_width="fill_parent"
            android:layout_marginBottom="10dp"
            android:background="#FFFFFF"
            />
    </RelativeLayout>

</ScrollView>

ここで、データベース内のすべてのエントリについて、 (ヘッダー)と(単純な行)の下にButton特定の情報を追加したいと思います。RelativeLayoutTextViewView

そこで、ここでいくつかの質問を読んだ後、私は次のようなことを試しました。

RelativeLayout layout = (RelativeLayout) findViewById(R.id.rel_all_football);

        LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        Button button;
        for(int i=0; i<3; i++){
            button = new Button(this);
            button.setLayoutParams(
                    new LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, 
                                     ViewGroup.LayoutParams.WRAP_CONTENT));
            button.setText("Hello " + i);

            layout.addView(button);
        }

これにより、が発生してNullPointerExceptionlayout.addView(button)ます。実を言うと、xmlに直接ではなく、コードからコンテンツを追加しようとするのは初めてなので、これを正しく行っているかどうかはわかりません。Viewは少なくとも属性layout_widthを持っていて宣言されている必要があることを知っていますlayout_heightが、ここで何が問題になっていますか?私は間違って膨らませていますか?または、作成時にエラーが見つかりましたButtonか?

4

1 に答える 1

1

私はあなたがidのsotでいくつかの問題に直面していると思いますこれを試してください

ScrollView scrollView = (ScrollView)getLayoutInflater().inflat(R.layout.filename)
        RelativeLayout layout = (RelativeLayout) scrollView.findViewById(R.id.rel_all_football);
        Button button;
        for(int i=0; i<3; i++){
            button = new Button(this);
            button.setLayoutParams( new LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
            button.setText("Hello " + i);

            layout.addView(button);
        }

    setContentView(scrollView);
于 2012-09-23T17:59:50.053 に答える