2012-08-22 3 views
-2

В разработке Android App хотел создать EditText из кода Java без использования XML, Так я написал этусоздать 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 не было видно.

Как создать EditText, используя только java?

+0

вы должны добавить контейнер таких как ReleaseativeLayout в вашем xml. затем добавьте в него текст редактирования. – Hesam

+0

, пожалуйста, проверьте: http://www.mysamplecode.com/2011/10/android-programmatically-generate.html – Hesam

ответ

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); 
0

Вы должны установить Height и Width параметры EditText, как это.

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

editText.setLayoutParams(param); 
0

Вы должны добавить Editext в свой родительский макет, доступный в mainlayout. давайте предположим, что вы RelativeLayout в главном

layout.addView(editText); 
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); 
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); 
Смежные вопросы