[JAVA] Programmierung ab 51 Jahren Hinweis: Zeigen Sie mehrere Ansichten im Android-Dialog / mit oder ohne XML an

Um mehrere Ansichten in einem Dialogfeld anzuzeigen, blasen Sie das LinearLayout auf, in dem die Ansichten im Dialogfeld platziert sind. Es ist eine Funktion, die ich später verwenden möchte, also ein kleines Memorandum.

Beachten Sie diesmal das Dialogfeld, in dem layout.xml verwendet wird, und das Dialogfeld, in dem Layout mit neuem LinearLayout dynamisch generiert wurde, ohne layout.xml zu verwenden.

Verwenden Sie Layout / xml (verwenden Sie die Datei App / res / layout / --- .xml).

Verfassung 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();Aber ich habe es verstanden
      builder.setView(inflater.inflate(R.layout.dialog_my,null))
             .setPositiveButton("OK",new DialogInterface.OnClickListener(){
                 @Override 
                 public void onClick(DialogInterface dialogInterface,int i){
                        //Verarbeitung beim Drücken der OK-Taste
                 }
             }).setNegativeButton("cancel",new DialogInterface.OnClickListener(){
                 @Override 
                 public void onClick(DialogInterface dialogInterface,int i){
                        //Verarbeitung beim Drücken der CANCEL-Taste
                 }
             });
             return builder.create();
      }
}

dialog_my.xml


//Aufblasbares Layout
//Versuchen Sie, zwei EditText zu platzieren

<?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>

Verwenden Sie nicht die Datei Layout.xml (verwenden Sie nicht die Datei App / res / layout / --- .xml).

Verfassung 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) {

        //Generieren Sie den Builder, um Dialogattribute usw. festzulegen
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        LinearLayout linearLayout = new LinearLayout(getActivity());
            linearLayout.setOrientation(LinearLayout.VERTICAL);

        //TextView im Layout generiert
        TextView textView = new TextView(getActivity());
            textView.setText("TEXT");
            textView.setLayoutParams(new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.WRAP_CONTENT));
            linearLayout.addView(textView);

        //Generieren Sie EditText, um es für das Layout zu generieren
        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-Taste drücken Prozess
                    }
                }).setNegativeButton("CANCELL", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        //CANCEL-Taste drücken Verarbeitung
                    }
                });

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

Recommended Posts

Programmierung ab 51 Jahren Hinweis: Zeigen Sie mehrere Ansichten im Android-Dialog / mit oder ohne XML an
Programmierung ab 51 Jahren Hinweis: Bestätigung der Android-Netzwerkverbindung
Programmierung ab 51 Jahren Hinweis - Referenz
Programmierung von 51 Jahre alten Memorandum Android Timer
Programmierung ab 51 Jahre Hinweis Service - Referenz
Programmierung aus einem 51 Jahre alten Memorandum of Thread
(Derzeit 52) Programmierung ab 51 Jahren Hinweis 3 Zeilen Fokus auf Android-Taste verschieben
Programmierung aus 51 Jahre altem Android-Memo Activity Manager-Memo
Programmierung ab 51 Jahren (derzeit 52 Jahre) Hinweis: Fügen Sie jar mit VScode Class.forName hinzu. Java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Drive
Programmierung ab 51 Jahren (derzeit 52) Hinweis Pfad und Datei
Programmierung ab 51 Jahren Hinweis AsyncTask - Referenz [Shakyo]
Programmierung ab 51 Jahren Hinweis: Starten Sie Android Sevice nicht mehr als einmal. Bestätigung des Dienststarts
Programmieren ab 51 Jahren Machen Sie FusedLocationProviderClient in ForegroundService ansässig
Programmierung ab 51 Jahren Hinweis Android Asynchroner Kommunikationsrückruf Verarbeitung nach Beendigung von AsyncTask Weitere Verallgemeinerung und Standardisierung
Programmierung ab 51 Jahren Hinweis: Einschränkungen bei der Hintergrundausführung OverView [Shakyo]
Zum Ausführen ist ein Programmiermemorandum von 51 Jahren (derzeit 52) java.awt javax.swing // Java 11 oder neuer erforderlich
Programmierung ab 51 Jahren [Shakyo] Intent IntentFilter-Referenz
Planung ab 51 Jahren (derzeit 52) Memorandum VScode javadoc
(Derzeit 52) Programmierung ab 51 Jahren Hinweis FileOutputStream android.content.Context.openFileOutput (java.lang.String, int) 'auf einer Nullobjektreferenz