我目前有:
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 :(得分: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);
}
}