嗨我需要根据某些数字动态显示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);
}
我是Android应用开发的新手。我知道for循环有什么问题......任何人都可以解决它吗?如果有人想出一些动态显示EditText框的其他方法
,我们将不胜感激答案 0 :(得分:0)
你不能用Java做“et + i”!
你可以创建ArrayList,然后把它放到et1,et2,et3 ......然后迭代。
答案 1 :(得分:0)
也许您正在考虑更像这样的事情:
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);
}
然后,如果您使用findViewById
,则根本不需要数组。只是说明你如何做你要求使用数组的问题。我想如果我做这样的事情,我会考虑更多地以编程方式创建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;
}
答案 2 :(得分:0)
你在做什么是不正确的。你可以这样做
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);
}