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