2012-03-25 14 views
0

こんにちは私はいくつかの数に応じて動的にEditTextボックスを表示する必要があります。私はこのようにしてみました:アンドロイドアプリ開発で動的にテクスチャボックスを表示する方法は?

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

私はアンドロイドアプリ開発には初めてです。私はforループに何か間違っていることを知っていた...誰もそれを修正することができますか?誰かが他の方法でEditTextボックスを動的に表示するようになっても、それは歓迎されます。

+0

は、なぜあなたはそれらの上の配列とループの中で 'et'変数を保持していないそれを行うことができないのですか? – jmishra

答えて

0

Javaでは「et + i」はできません!

ArrayListを作成し、et1、et2、et3 ...を入力してから反復することができます。おそらく、

0

あなたがより多くのこのような何かを考えていました:あなたはfindViewByIdを使用している場合

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

その後、再び、あなたはすべての配列を必要とする可能性はありません。配列を使用することを求めていることをどうやって行うのかを説明するだけです。私はこのようなことをしていたら、よりプログラム的にEditTextを作成することについてもっと考えていると思います。



ここで私は、それがプログラムのダイアログを作成し、その中でいくつかのEditText年代を持っている必要があり、これが役に立てば幸いユーティリティメソッドです。何をやっている

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

あなたは動的にそれらのテキストボックスを作成するいくつかのアイデアを教えてください? –

+0

確かに、独自の 'EditText'をプログラムで作成するユーティリティメソッドを追加しました – dldnh

0

はcorrect.Youはこのよう

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

私はこれを明確に理解することができず、また機能していません –

+0

私はコードを編集しましたか確認してください – Nishant

+0

このコードは君は? – Nishant

関連する問題