[JAVA] Programmation à partir de 51 ans Remarque: afficher plusieurs vues dans la boîte de dialogue Android / avec ou sans xml

Pour afficher plusieurs vues dans une boîte de dialogue, gonflez le LinearLayout où les vues sont placées dans la boîte de dialogue. C'est une fonction que je veux utiliser plus tard, donc un petit mémorandum.

Cette fois, notez la boîte de dialogue qui utilise layout.xml et la boîte de dialogue qui a généré dynamiquement Layout avec le nouveau LinearLayout sans utiliser layout.xml.

Utilisez Layout / xml (utilisez App / res / layout / --- .xml file)

Constitution 1.MainActivity.java 2.MyDialog.java 3.dilog_my.xml

MainActivity


protected void onCreate(final Bundle savedInstanceState){
  ...
  AppCompatDialogFragment dialog = new MyDialog();
  dialog.show(getSupportFragmentManager(),null);
}

MyDialog.java



public class MyDialog extends AppCompatDialogFragment{
   @Override
   public Dialog onCreateDialog(Bundle savedInstanceState){
      AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
      LayoutInflater inflater     = requireActivity().getLayoutInflater();
      //                            getActivity().getLayoutInflater();Mais je l'ai
      builder.setView(inflater.inflate(R.layout.dialog_my,null))
             .setPositiveButton("OK",new DialogInterface.OnClickListener(){
                 @Override 
                 public void onClick(DialogInterface dialogInterface,int i){
                        //Traitement lorsque le bouton OK est enfoncé
                 }
             }).setNegativeButton("cancel",new DialogInterface.OnClickListener(){
                 @Override 
                 public void onClick(DialogInterface dialogInterface,int i){
                        //Traitement lorsque le bouton CANCEL est enfoncé
                 }
             });
             return builder.create();
      }
}

dialog_my.xml


//Disposition gonflable
//Essayez de placer deux EditText

<?xml version="1.0" encodeing="utf-8" ?>
<LinearLayout xmls:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="match_parent"
   android:layout_height="match_parent">
   
   <EditText
       android:id="@+id/edit1"
       android:inputType="numberPassword"
       android:layout_width="match_parent"
       android:layout_height="match_parent"/>

   <EditText
       android:id="@+id/edit2"
       android:layout_width="match_parent"
       android:layout_height="match_parent"/>

</LinearLayout>

N'utilisez pas Layout.xml (n'utilisez pas le fichier App / res / layout / --- .xml)

Constitution MainActivity.java MyDialog.java

MainActivity


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    MyDialog dialog = new MyDialog();
    dialog.show(getSupportFragmentManager(),null);
}

MyDialog


public class MyDialog extends AppCompatDialogFragment {
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {

        //Générer Builder pour définir les attributs de la boîte de dialogue, etc.
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        LinearLayout linearLayout = new LinearLayout(getActivity());
            linearLayout.setOrientation(LinearLayout.VERTICAL);

        //TextView généré dans la mise en page
        TextView textView = new TextView(getActivity());
            textView.setText("TEXT");
            textView.setLayoutParams(new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.WRAP_CONTENT));
            linearLayout.addView(textView);

        //Générer EditText à générer pour la mise en page
        EditText editText = new EditText(getActivity());
            editText.setLayoutParams(new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.WRAP_CONTENT));
            linearLayout.addView(editText);

        builder
                .setView(linearLayout)
                .setTitle("sample")
                .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        //OK bouton appuyez sur le processus
                    }
                }).setNegativeButton("CANCELL", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        //Traitement de la pression du bouton ANNULER
                    }
                });

        this.setCancelable(false);
        return builder.create();
    }
}

Recommended Posts

Programmation à partir de 51 ans Remarque: afficher plusieurs vues dans la boîte de dialogue Android / avec ou sans xml
Programmation à partir de 51 ans Remarque: Confirmation de la connexion réseau Android
Programmation à partir de 51 ans Remarque - référence
Programmation à partir de 51 ans mémorandum android Timer
Programmation à partir de 51 ans Note Service - référence
Programmation à partir de Memorandum of Thread de 51 ans
(Actuellement 52) programmation à partir de 51 ans Note 3 lignes Déplacer le focus sur le bouton Android
Programmation à partir de 51 ans mémo Android Activity Manager mémo
Programmation à partir de 51 ans (actuellement 52) Remarque: Ajouter un fichier jar avec VScode Class.forName java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Drive
Programmation à partir de 51 ans (actuellement 52) Note Path and File
Programmation à partir de 51 ans Remarque AsyncTask --reference [Shakyo]
Programmation à partir de 51 ans Remarque: ne démarrez pas Android Sevice plus d'une fois Confirmation du démarrage du service
Programmation à partir de 51 ans Make FusedLocationProviderClient resident in ForegroundService
Programmation à partir de 51 ans Remarque Android Rappel de communication asynchrone Traitement après la fin d'AsyncTask Généralisation et standardisation supplémentaires
Programmation à partir de 51 ans Remarque: Restrictions d'exécution en arrière-plan OverView [Shakyo]
Mémorandum de programmation de 51 ans (actuellement 52) java.awt javax.swing // Java 11 ou plus récent est requis pour fonctionner
Programmation à partir de 51 ans [Shakyo] Intent IntentFilter-reference
Planification à partir de 51 ans (actuellement 52) Mémorandum VScode javadoc
(Actuellement 52) programmation à partir de 51 ans Remarque FileOutputStream android.content.Context.openFileOutput (java.lang.String, int) 'sur une référence d'objet nulle