2013-04-12 74 views
0

我目前有:編程設定一個TextView在Android中

final TextView tv = new TextView(this); 
final RelativeLayout rL = new RelativeLayout(this); 
final EditText editText = (EditText)findViewById(R.id.editText); 
final Button b1 = (Button)findViewById(R.id.b1);  

b1.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      rL.addView(tv); 
      tv.setText(editText.getText()); 
      editText.setText(""); 

     } 
    }); 

在我的onCreate方法,但是當文本輸入和我的按鈕被按下我的TextView不會在屏幕上顯示出來?有沒有代碼可以設置在手機屏幕上的位置?

+0

您是以編程方式或以XML格式創建'textView'嗎?也可以用'public'替換'final'。 – TronicZomB

+0

以編程方式,如我在標題中所述:) –

+1

您添加文本視圖的相對佈局在屏幕上不可見。您需要使用findViewById()來獲取對RelativeLayout的引用,就像您使用button和EditText一樣,而不是使用新的RelativeLayout – FoamyGuy

回答

2

這是你的問題

final RelativeLayout rL = new RelativeLayout(this); 

這RelativeLayout的包含TextView中甚至沒有顯示在屏幕上,你正在做的是創造一個RelativeLayout的。

你應該做的反而是增加的RelativeLayout到您的XML佈局文件(包含的EditText和Button和同一個執行下列操作

final RelativeLayout rL = (RelativeLayout)findViewById(R.id.myRelativeLayout); 
... 
rL.addView(tv); 

現在既然你引用一個實際的RelativeLayout,你的文字會可見, 希望我做了某種意義。

1

你有一個基地佈局?你添加的EditText到RelativeLayout的,但你需要的RelativeLayout的添加一些已經存在的佈局。

首先,膨脹一些底座佈局。然後在該佈局上執行findViewById。使用它來調用addView(editText);

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/base_layout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 
</RelativeLayout> 



public class MyActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.layout); 

     RelativeLayout rl = (RelativeLayout)findViewById(R.layout.base_layout); 
     rl.addView(yourTextView); 

    } 

} 
相關問題