-2

在android应用程序开发中想要从java代码创建一个EditText而不使用XML,所以我写了这个

 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 ?

4

5 回答 5

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);
于 2012-08-22T04:23:38.637 回答
0

你将不得不设置Height和这样Width的参数EditText

LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
                       LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);

editText.setLayoutParams(param);
于 2012-08-22T04:24:19.180 回答
0

您应该将 Editext 添加到 mainlayout 中可用的父布局。让我们假设您的 main 中有相对布局

 layout.addView(editText);
于 2012-08-22T04:24:21.803 回答
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);
于 2012-08-22T04:35:16.677 回答
-1

首先,您应该通过布局文件获取根视图。

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);
于 2012-08-22T05:29:55.077 回答