2012-02-18 4 views
0

Dans une mise en page de boîte de dialogue, je crée un second EditText par programme en fonction des choix de l'utilisateur. Quand je veux retourner les entrées, j'ai besoin de savoir si un second EditText a été créé ou pas. Et je ne comprends pas comment faire cette vérification. Ma déclaration if (edittextTwo! = Null) est toujours nulle, même lorsque le second EditText a été affiché et saisi du texte.Comment savoir si un EditText a été créé?

Voici les méthodes qui créent la deuxième EditText et retournent leurs entrées:

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 

Répondre

1

déplacez EditText edittextTwo; en dehors de votre méthode. mettre ici:

public class myActivity extends Activity 
    EditText edittextTwo = null; 

Et puis, dans votre DisplayASecondEditText(), faire au lieu de ce que vous avez:

edittextTwo = new EditText(this); 

Cela rendra votre déclaration globale, et permettre à toutes les méthodes d'accès à la variable.

+0

Ah, oui. La portée est difficile pour un débutant. Merci! – Tombola

1

Je ne comprends pas comment votre code ci-dessus même compile, depuis edittextTwo est une variable locale dans displayASecondEdittext. Faites-en une variable membre dans votre activité et cela devrait fonctionner.

Questions connexes