ここでいくつかの同様の問題を読んだ後、私はまだここに私の質問を投稿することを余儀なくされています。
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
特定の情報を追加したいと思います。RelativeLayout
TextView
View
そこで、ここでいくつかの質問を読んだ後、私は次のようなことを試しました。
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);
}
これにより、が発生してNullPointerException
いlayout.addView(button)
ます。実を言うと、xmlに直接ではなく、コードからコンテンツを追加しようとするのは初めてなので、これを正しく行っているかどうかはわかりません。View
は少なくとも属性layout_width
を持っていて宣言されている必要があることを知っていますlayout_height
が、ここで何が問題になっていますか?私は間違って膨らませていますか?または、作成時にエラーが見つかりましたButton
か?