2011-04-28 5 views
3

Salut, j'ai un alertdialog qui est créé lorsque vous cliquez sur un élément dans une liste, Im essayant d'obtenir le nom du fichier, description, auteur etc. de mon activité et l'afficher dans mon alertdialog mais .setText ne fonctionnera pas, quelqu'un peut-il aider s'il vous plaît. Merci, voici mon code: http://pastebin.com/FzWSPp5eAndroid AlertDialog SetText

Répondre

1

ce n'est pas du tout la façon dont vous utilisez correctement les boîtes de dialogue dans Android. vous devez définir vos boîtes de dialogue dans une substitution de onCreateDialog, tel que décrit dans la documentation:

http://developer.android.com/guide/topics/ui/dialogs.html 

suivant ce guide, vous devriez être en mesure de résoudre votre problème. voici un exemple que je viens copié et collé à partir d'une application aléatoire:

@Override 
protected Dialog onCreateDialog(int id, Bundle b) { 
    LayoutInflater inflater = (LayoutInflater) this.getSystemService(this.LAYOUT_INFLATER_SERVICE); 
    AlertDialog.Builder builder = null; 
    switch(id) { 
     case DIALOG_BLOCK_SIZE: 
     { 
      Dialog dialog = new Dialog(this); 
      final View dialogLayout = inflater.inflate(R.layout.dialog_block_size, null); 
      builder = new AlertDialog.Builder(this); 
      builder.setView(dialogLayout); 
      builder.setTitle("Set Block Size"); 

      final EditText blockIn = (EditText)dialogLayout.findViewById(R.id.block_size_in); 
      blockIn.setText(new Integer(pref.getInt("block_size", 6)).toString()); 

      builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         SharedPreferences.Editor editor = pref.edit(); 
         editor.putInt("block_size", new Integer(blockIn.getText().toString())); 
         editor.commit(); 
         ////////TODO/////////// 
         //notify MinutemaidService that we have changed the block_size 
         dialog.dismiss(); 
        } 
       }); 
      builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         dialog.cancel(); 
        } 
       }); 
      dialog = builder.create(); 
      return dialog; 
     } 
     default: 
     { 
      return null; 
     } 
    } 
    return dialog; 
} 

avec le code ci-dessus, vous pouvez appeler pour afficher la boîte de dialogue showDialog (de DIALOG_BLOCK_SIZE). Notez également que les dialogues sont créés une fois et montrés encore et encore. Pour forcer la reconstruction d'une boîte de dialogue, appelez removeDialog (int) avant d'appeler showDialog (int). override onPrepareDialog() est la meilleure méthode, mais en utilisant removeDialog fonctionne et c'est plus facile.