以编程方式在Android中设置textview

时间:2013-04-12 01:35:26

标签: 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没有显示在屏幕上?是否有代码设置在手机屏幕上设置的位置?

2 个答案:

答案 0 :(得分:2)

这是你的问题

final RelativeLayout rL = new RelativeLayout(this);

包含TextView的RelativeLayout甚至不会显示在屏幕上,您所做的只是创建RelativeLayout。

你应该做的是在你的XML布局文件中添加一个RelativeLayout(包含EditText和Button的同一个,并执行以下操作

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

现在,由于您正在引用实际的RelativeLayout,因此您的文本将可见。 希望我有某种意义。

答案 1 :(得分: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);

    }

}