2011-09-08 97 views
3

我該如何動態地添加一個TextView到這個?註釋掉的代碼不起作用。所有的動態添加一個TextView - Android

public class myTextSwitcher extends Activity { 

    private TextView myText; 
    public myTextSwitcher(String string){ 

     //myText = new TextView(this); 
     //myText.setText("My Text"); 
    } 
} 

回答

1

首先,你不應該在構造函數中添加它,非默認的構造函數是一個Activity幾乎無用。最後,你正在創建一個新的TextView,但你並沒有在任何地方添加它。在您的內容視圖中獲取一些layout(可能與findViewById),並撥打電話layout.addView(myText)

+0

是否需要爲textview對象mytext提供'LinearLayout.LayoutParams'? –

4

您正在創建一個文本視圖並設置它的值,但是您沒有指定應該在哪裏以及如何顯示它。你的myText對象需要有一個可以顯示的容器。

你要做的是動態佈局視圖。請參閱good starter article。從文章:

// This is where and how the view is used 
TextView tv = new TextView(this); 
tv.setText("Dynamic layouts ftw!"); 
ll.addView(tv); 

// this part is where the containers get "wired" together 
ScrollView sv = new ScrollView(this); 
LinearLayout ll = new LinearLayout(this); 
ll.setOrientation(LinearLayout.VERTICAL); 
sv.addView(ll); 
+0

我也想看看你想動態佈局一個視圖。既然你從Android開始,你可能會首先考慮用XML來做佈局。動態佈局不適合初學者。 –

0

你的文本視圖中添加使用setContentView(myText);

活動使這個

myText = new TextView(this); 
myText.setText("foo"); 
setContentView(myText); 
0

在onCreate()方法

final TextView tv1 = new TextView(this); 
    tv1.setText("Hii Folks"); 
    tv1.setTextSize(14); 
    tv1.setGravity(Gravity.CENTER_VERTICAL); 
    LinearLayout ll = (LinearLayout) findViewById(R.id.lin); 
    ll.addView(tv1); 

你activity_main .xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/lin" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center_vertical|center_horizontal" 
    android:orientation="horizontal"> 
</LinearLayout>