2012-09-03 64 views
1

我剛開始的Android,我嘗試下面的問題在這裏張貼之前得到這樣的回答:仍無法按鈕佈局添加Android中

Android - Adding layout at runtime to main layout

Add button to a layout programmatically

Dynamically adding a child to LinearLayout with getting each child's position

而我仍然無法添加按鈕到線性佈局:(

以下是代碼fo R活性,請讓我知道我錯了:

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     LinearLayout layout = (LinearLayout) View.inflate(this, R.layout.activity_main, null); 

     Button btn = new Button(this); 
     btn.setId(123); 
     btn.setText("Welcome to WI FI World"); 
     layout.addView(btn); 
    } 

和XML看起來象下面這樣:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

</LinearLayout> 
+0

您需要將線性佈局添加到頁面。我很確定那些不是相同的線性佈局。所以你正在添加一個按鈕,但沒有顯示 – Doomsknight

回答

1

從XML

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/linear" > 

</LinearLayout> 

取ID爲的LinearLayout在XML和java的代碼中使用的LinearLayout的該ID在的onCreate():

LinearLayout linear=(LinearLayout)findViewById(R.id.linear); 

//Select widgets 
linear.addView() 
+0

就像一個魅力..一個愚蠢的錯誤。 – Atul

1

給一個id你的LinearLayout。

然後在你的代碼

LinearLayout layout = (LinearLayout)findViewById(R.id.given_id); 

保持休息一樣,應該工作。

2

嘗試分配一個ID,你的佈局,然後添加布局按鈕。

林相當肯定這2個佈局是不一樣的,所以你實際上添加一個按鈕,從未顯示的佈局。

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    LinearLayout layout = (LinearLayout) findViewById(R.id.lnr_main); 

    Button btn = new Button(this); 
    btn.setId(123); 
    btn.setText("Welcome to WI FI World"); 
    layout.addView(btn); 
} 

隨佈局分配一個ID

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/lnr_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

</LinearLayout>