不使用XML创建EditText

时间:2012-08-22 04:17:59

标签: android android-widget

在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?

5 个答案:

答案 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);