如何查明是否已创建EditText



在对话框布局中,我根据用户的选择以编程方式创建第二个EditText。当我想返回输入时,我需要知道是否已经创建了第二个EditText。我不明白怎么做这个检查。我的语句if(edittextTwo!=null)始终为null,即使第二个EditText已经显示并输入了文本。

以下是创建第二个EditText并返回其输入的方法:

if(edittextTwo!=null)

private void displayASecondEdittext(String title) {
    ViewGroup layout = (ViewGroup) findViewById(R.id.layout_editdialog);
    TextView titleTwo = new TextView(this);
    titleTwo.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
    titleTwo.setText(title);
    layout.addView(titleTwo);
    EditText edittextTwo = new EditText(this);
    edittextTwo.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    layout.addView(edittextTwo);
}//END displayASecondInputfield

private void returnResult() {
    Intent resultIntent = new Intent(this, EditDialog.class);
    resultIntent.putExtra(EDITONE, edittextOne.getText().toString());
    if (edittextTwo != null) {
        resultIntent.putExtra(EDITTWO, edittextTwo.getText().toString());
        Log.v(TAG, "edittextTwo ="+edittextTwo.getText().toString());
    }
    setResult(Activity.RESULT_OK, resultIntent);
    finish();
}//END returnResult 

EditText edittextTwo;移出方法。放在这里:

public class myActivity extends Activity
    EditText edittextTwo = null;

然后,在你的DisplayASecondEditText()中,这样做,而不是你所拥有的:

edittextTwo = new EditText(this);

这将使您的声明具有全局性,并允许所有方法访问该变量。

我甚至不明白上面的代码是如何编译的,因为edittextTwodisplayASecondEdittext中的局部变量。将其作为活动中的成员变量,它应该会起作用。

最新更新