2012-03-25 5 views
0

Hi Ich muss die EditText-Boxen dynamisch abhängig von einer Nummer anzeigen. Ich versuchte es so:wie man texboxes dynamisch in android app entwicklung anzeigen?

et1=(EditText) findViewById(R.id.editText1); 
    et1.setVisibility(View.INVISIBLE); 
    et2=(EditText) findViewById(R.id.editText2); 
    et2.setVisibility(View.INVISIBLE); 
    et3=(EditText) findViewById(R.id.editText3); 
    et3.setVisibility(View.INVISIBLE); 
    et4=(EditText) findViewById(R.id.editText3); 
    et4.setVisibility(View.INVISIBLE); 
    et5=(EditText) findViewById(R.id.editText3); 
    et5.setVisibility(View.INVISIBLE); 
    for(i=1;i<=wl;++i) 
    { 
    et+i.setVisibility(View.VISIBLE); 
    } 

Ich bin neu in Android App-Entwicklung. Ich wusste, dass etwas in der For-Schleife falsch ist ... könnte jemand es reparieren? und es würde auch geschätzt werden, wenn jemand mit einer anderen Methode kommen würde, um das EditText-Feld dynamisch anzuzeigen

+0

Warum nicht halten 'et' Variablen in einem Array und Schleife über sie? – jmishra

Antwort

0

Sie können "et + i" in Java nicht tun!

Sie können ArrayList erstellen, dann legen Sie Et1, Et2, Et3 ... und dann iterieren.

0

Vielleicht, was Sie über etwas dachten mehr wie folgt aus:

EditText[] ets = new EditText[5]; 
int i; 
ets[0]=(EditText) findViewById(R.id.editText1); 
ets[0].setVisibility(View.INVISIBLE); 
ets[1]=(EditText) findViewById(R.id.editText2); 
ets[1].setVisibility(View.INVISIBLE); 
... 
ets[4]=(EditText) findViewById(R.id.editText3); 
ets[4].setVisibility(View.INVISIBLE); 
for(i=0;i<=4;++i) 
{ 
    ets[i].setVisibility(View.VISIBLE); 
} 

Dann wieder, wenn Sie mit findViewById, sind Sie wahrscheinlich nicht ein Array überhaupt brauchen. Veranschaulicht nur, wie Sie das tun würden, was Sie über die Verwendung eines Arrays fordern. Ich denke, wenn ich etwas so machen würde, würde ich eher daran denken, die EditText programmgesteuert zu erstellen.



Hier ist ein Dienstprogramm Methode, die ich habe, dass ein Dialog erzeugt programmatisch und hat einige EditText ist drin, hoffe, das hilft.

public static void testNotification(final Activity activity) 
{ 
    Dialog dlg = new Dialog(activity); 
    dlg.setTitle("Notification Test"); 

    LinearLayout dlgView = new LinearLayout(activity); 
    dlgView.setOrientation(LinearLayout.VERTICAL); 
    dlg.addContentView(dlgView, new LayoutParams(200, 200)); 

    final EditText et1 = new EditText(activity); 
    et1.setText("ABC"); 
    dlgView.addView(et1); 

    final EditText et2 = new EditText(activity); 
    et2.setText("XYZ"); 
    dlgView.addView(et2); 

    Button btn = new Button(activity); 
    btn.setText("Go"); 
    dlgView.addView(btn); 

    et1.setWidth(LayoutParams.FILL_PARENT); 
    et2.setWidth(LayoutParams.FILL_PARENT); 
    btn.setWidth(LayoutParams.FILL_PARENT); 

    btn.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) 
    { 
     Util.doNotification(activity, et1.getText().toString(), et2.getText() 
      .toString()); 
    } 
    }); 
    dlg.show(); 
    return; 
} 
+0

Umgeben Sie bitte eine Idee, diese Textbox dynamisch zu erstellen? –

+0

sicher, ich habe eine Utility-Methode von mir hinzugefügt, die ihre eigenen 'EditText's programmatisch erstellt – dldnh

0

Was Sie tun, ist nicht correct.You es auf diese Weise tun können

et1=(EditText) findViewById(R.id.editText1); 
et1.setVisibility(View.INVISIBLE); 
et2=(EditText) findViewById(R.id.editText2); 
et2.setVisibility(View.INVISIBLE); 
et3=(EditText) findViewById(R.id.editText3); 
et3.setVisibility(View.INVISIBLE); 
et4=(EditText) findViewById(R.id.editText4); 
et4.setVisibility(View.INVISIBLE); 
et5=(EditText) findViewById(R.id.editText5); 
et5.setVisibility(View.INVISIBLE); 
for(i=0;i<=4;i++) 
{ 
    String editTextName = editText+(i+1); 
    int resID = getResources().getIdentifier(editTextName , "id", getPackageName()); 
    EditText et = (EditText) findViewById(resID); 
    et.setVisibility(View.VISIBLE); 
} 
+0

ich kann nicht klar verstehen und auch nicht funktioniert –

+0

Ich habe den Code bearbeitet, bitte überprüfen Sie es – Nishant

+0

Hat dieser Code funktioniert für Du? – Nishant