2011-09-30 86 views
0

添加textview到LinearLayout我是一個Android的初學者,並正在研究佈局。不能夠通過代碼

我想要做的是我試圖通過代碼添加一個textView到LinearLayout,並且應用程序停止與應用程序已意外停止的錯誤。代碼是:

setContentView(R.layout.main); 

    LinearLayout abc = (LinearLayout)findViewById(R.id.cLayout); 

    TextView tv = new TextView(this); 
    tv.setText("Text Changed!!!!"); 

    abc.addView(tv); 

而在xml中,id的設置類似於:android:id =「@ + id/cLayout」。

我知道有更好的方法來做到這一點,但我想知道爲什麼這不起作用。 textView的內容正在改變。我也試過

LinearLayout abc = (LinearLayout)findViewById(R.layout.main); 

我在做什麼錯?有一件事很明顯,我正在訪問未創建的項目(未分配的指針)。

編輯 主要XML:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/cLayout" 
    > 
<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="Hello World" 
    android:id="@+id/myTV" 
    /> 
</LinearLayout> 
+1

請附上異常堆棧跟蹤。 – Ash

+0

同意@Ash。我們需要更多細節才能提供幫助。你說這是一個NullPointerException - 據推測,這是在行abc.addView(電視)。你能發佈你的main.xml嗎? – brianestey

+0

plz分享,如果你geting任何異常或任何錯誤? –

回答

1

我試圖複製它,和它的作品對我來說,沒有例外。

的main.xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/cLayout" 
      android:orientation="vertical" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 
    <TextView 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="Hello World, MyActivity"/> 
</LinearLayout> 

MyActivity.java:

public class MyActivity extends Activity 
{ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     LinearLayout ll = (LinearLayout) findViewById(R.id.cLayout); 

     TextView tv = new TextView(this); 
     tv.setText("Hello Again!"); 

     ll.addView(tv); 
    } 
} 

UPD當我貼出你的代碼,我得到了一個例外,太。確保您致電super.onCreate()

+0

那麼我的步驟呢?我的意思是根據我的理解它應該起作用。我完全困惑! – SpeedBirdNine

+0

我會嘗試打印異常,然後 – SpeedBirdNine

+0

是的,這會有所幫助。我和你一樣困惑,因爲你的代碼看起來很好。 – Ash