2012-12-24 22 views
6

Bir DialogFragment oluşturduk ve ben bir EditText eklemek istiyorum ama denemek ve böyle eklediğinizde Tanımsız".DialogFragment'e nasıl bir EditText ekleyebilirim? olduğu</p> <pre><code>final EditText input = new EditText(this); </code></pre> <p>"Bu" diyerek "yapıcı EditText (EncryptionDialogFragment) bir hata alır:

Nihai hedefim, kullanıcının bu şekilde parolalarını girmesini sağlamaktır.

public class EncryptionDialogFragment extends DialogFragment { 
    final EditText input = new EditText(this); 
    static EncryptionDialogFragment newInstance(String title){ 
     EncryptionDialogFragment fragment = new EncryptionDialogFragment(); 
     Bundle args = new Bundle(); 
     args.putString("title", title); 
     fragment.setArguments(args); 
     return fragment; 
    } 
    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     return new AlertDialog.Builder(getActivity()) 
     .setIcon(R.drawable.ic_launcher) 
     .setTitle("Enter Password:") 
     .setView(input) 
     .setPositiveButton("OK", 
       new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, 
       int whichButton) { 
      ((MainActivity)getActivity()).doPositiveClick(); 
     } 
    }) 
    .setNegativeButton("Cancel", 
      new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, 
       int whichButton) { 
      ((MainActivity)getActivity()).doNegativeClick(); 
     } 
    }).create(); 
} 

}

cevap

6

Kullanım getActivity()

final EditText input = new EditText(getActivity()); 

ve getActivity bir Bağlam olmaya boş

+0

Teşekkür ederiz! Cevabınızı kabul etmek için 10 dakika beklemek zorundayım. – GreekOphion

1

this ihtiyaçlarını döndürmez nerede alanında kullanıyorsanız onCreateView bunu başlatmak yok yani bir Etkinlik. Parçanız bir etkinliğe eklenmeden önce EditText'i oluşturamazsınız. onCreateDialog'da new EditText(getActivity())'u yapabilirsiniz.