在android app开发中,想要在不使用XML的情况下从java代码创建EditText, 所以我写了这个
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.EditText;
public class MainActivity extends Activity {
private static final String initMess="Hello Arun";
private static final int VISIBLE = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText editText = new EditText(this);
editText.setText(initMess.toString());
editText.setVisibility(VISIBLE);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
但是在模拟器中运行应用程序时,EditText不可见。
如何仅使用java创建EditText?
答案 0 :(得分:2)
ScrollView sv = new ScrollView(this);
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
sv.addView(ll);
EditText et = new EditText(this);
et.setText("weeeeeeeeeee~!");
ll.addView(et);
this.setContentView(sv);
答案 1 :(得分:0)
您必须设置Height
的{{1}}和Width
参数。
EditText
答案 2 :(得分:0)
您应该将Edittext添加到mainlayout中可用的父版式。 让我们假设你在主要的
中有相对布局 layout.addView(editText);
答案 3 :(得分:0)
试试这个,
//first set the layout
LinearLayout linerLayout = (LinearLayout)findViewById(R.id.linearLayout);
// add edit text
EditText editText = new EditText(this);
editText.setText( "" );
// add editText to the view
linerLayout.addView(editText);
答案 4 :(得分:0)
首先,您应该按布局文件获取根视图。
LinearLayout layout = (LinearLayout)findViewById(R.id.layout);
其次,您应该声明您的子组件,如EditText
EditText et =new EditText(this);
LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);
et.setLayoutParam(p);
et.setText("text");
第三,您应该将您的子组件插入父布局
layout.addView(et);