2012-12-17 108 views
-2

以便調試和註釋掉我得出的結論,該程序的問題在addTextView()方法中。我完全不知道問題出在哪裏。我的猜測是在我試圖添加到TextView的佈局中。 非常感謝您的幫助。Android以編程方式添加文本視圖

public class Books extends Activity{ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.books); 
     addTextView("Hello World"); 
    } 


    public void addTextView(String text) 
    { 
     ScrollView viewport = (ScrollView)findViewById(R.id.books); 
     TextView textview= (TextView)new TextView(this); 
     textview.setText(text); 
     //textview.setLayoutParams(new ScrollView.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
     viewport.addView(textview, new ScrollView.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
    } 

    public void addButton(String text) 
    { 
     ScrollView scrollview = (ScrollView)findViewById(R.id.books); 
     Button btnTag = (Button)new Button(Books.this); 
     btnTag.setLayoutParams(new ScrollView.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
     btnTag.setText(text); 
     scrollview.addView(btnTag); 
    } 

} 
+1

請發佈您的LogCat錯誤。 – Sam

+0

您可能會考慮將ScrollView存儲爲字段,然後所有對它的引用將使用相同的名稱(這將有助於保持活動易於閱讀),並且會浪費更少的內存。 – ataulm

+0

好吧,我認爲這是一個有效的問題,我不知道他們爲什麼關閉它。感謝上帝ataulm是一位天才,並且完美地理解它。這是一個真正的恥辱,因爲其他人會被這個困惑,並會從答案中受益 –

回答

7

ScrollViews只能有一個孩子,通常是一個LinearLayout。當您致電scrollview.addView(blah blah)時,您將向ScrollView添加更多兒童,這是不允許的。對於有關ScrollView的文檔,請參閱here

-

在一個側面說明,在計算器上張貼有關的錯誤的問題,當你遇到,請註明:

  • 錯誤遇到(在Android中,這將可以找到LogCat視圖)
  • 您的預期結果(您正在嘗試執行的操作)
  • 相關代碼(在這種情況下,您應該也包含佈局XML文件 - 而ScrollView錯誤是defini一個一個的錯誤,你會得到,它可能不是第一個需要修復,爲了向前移動)。

它會幫助每個人,包括將來遇到這個問題的人。

+0

非常感謝您的幫助。並感謝您花時間解釋如何更好地使用網站,而不僅僅是抱怨。節日快樂 –

+0

不客氣,你也是。 – ataulm

相關問題