如何确定是否已创建EditText?

时间:2012-02-18 17:56:32

标签: android object android-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 

2 个答案:

答案 0 :(得分:1)

我不明白上面的代码是如何编译的,因为edittextTwodisplayASecondEdittext中的局部变量。将它作为活动中的成员变量,它应该可以工作。

答案 1 :(得分:1)

EditText edittextTwo;移出方法的一边。把它放在这里:

public class myActivity extends Activity
    EditText edittextTwo = null;

然后,在DisplayASecondEditText()中,执行此操作而不是您拥有的内容:

edittextTwo = new EditText(this);

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