2012-02-18 58 views
0

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

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

如果(!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 

回答

1

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

public class myActivity extends Activity 
    EditText edittextTwo = null; 

,然后在你的DisplayASecondEditText(),做到这一点,而不是你拥有的一切:

edittextTwo = new EditText(this); 

这会让你的宣言全球,并允许所有一切方法来访问的变量。

+0

啊,是的。对于初学者来说,范围很棘手。谢谢! – Tombola 2012-02-18 18:57:09

1

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

相关问题