0
在閱讀了一些類似的問題後,我仍然不得不在這裏發佈我的問題。將按鈕添加到ScrollView內部的RelativeLayout中 - NullPointerException
我有一個活動,應該添加和顯示一定數量的按鈕相對於我的SQLite數據庫中的遊戲數量。該活動必須是可滾動的。
所以,我有我的基本佈局的XML文件是這樣的:
<?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>
現在,在數據庫中的每個條目,我想在這RelativeLayout
的某些信息添加Button
的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);
}
這是在layout.addView(button)
造成NullPointerException
。說實話,這是我第一次嘗試從代碼中添加內容,而不是直接在xml中添加內容,所以我不知道如果我這樣做是正確的。我知道一個View
必須至少有屬性layout_width
和layout_height
聲明,所以這裏有什麼問題?我膨脹錯了嗎?或者我在創建Button
時發現錯誤?
'findViewById()'只能找到傳遞給'的setContentView意見指出,在當前的佈局,例如在佈局()'。您發佈的佈局是否是您傳遞'setContentView()'的佈局? – Sam
在layout.addView(按鈕)上放置一個斷點並運行您的代碼。我敢打賭,佈局是空的。 – Simon