Home > Software design >  Dialog with multiple textview
Dialog with multiple textview

Time:06-30

i need to add 5 text view in my code. For now there is only one and it is used to put a marker in google maps. I would like that in addition to this you could put another 4 data insertions like (description, age, work, hobbys).Below I also put the custom dialog I made can you check if it's okay? Feel free to ask for anything. How can I do?

                add_address.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            View viewcustom = getLayoutInflater().inflate(R.layout.custom_dialog, null);
            EditText edt1 = view.findViewById(R.id.Description);
            EditText edt2 = view.findViewById(R.id.Age);
            EditText edt3 = view.findViewById(R.id.Hobby);
            EditText edt4 = view.findViewById(R.id.City);
            EditText edt5 = view.findViewById(R.id.address);

            final AlertDialog.Builder alertDialog = new AlertDialog.Builder(requireContext())
                    .setView(viewcustom)
                    .setPositiveButton("Ok", (dialogInterface, i) -> {
                        String description = edt1.getText().toString();
                        String age = edt2.getText().toString();
                        String Hobby = edt3.getText().toString();
                        String City = edt4.getText().toString();
                        String address = edt5.getText().toString();

                        Toast.makeText(requireContext(), description, Toast.LENGTH_SHORT).show();
                firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
                reference = FirebaseDatabase.getInstance().getReference("Users").child(firebaseUser.getUid()).child("address");
                reference.setValue(address);
            });
            alertDialog.setNegativeButton("Cancel", null);
            alertDialog.create().show();
            //startAutoCompleteIntent();
        }
    });

Customdialog.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Text 1"
        android:id="@ id/Description" />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Text 2"
        android:id="@ id/Age" />

    <EditText
        android:id="@ id/Hobby"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:hint="Text 3" />

    <EditText
        android:id="@ id/City"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Text 4" />
    <EditText
        android:id="@ id/Marker"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Text 5" />
</LinearLayout>

CodePudding user response:

You have to provide your own custom view and then you have to retrieve your EditTexts with findViewByID()

View view = getLayoutInflater().inflate(R.layout.custom_dialog, null);
EditText edt1 = view.findViewById(R.id.Description);
// get other EditTexts here
final Dialog alertDialog = new Dialog(activity);
alertDialog.setView(view);
alertDialog.setPositiveButton("Ok", (dialogInterface, i) -> {
    String description = edt1.getText().toString();
    //other stuff
});

Entire sample inspired from your code

public class MainActivity extends AppCompatActivity {

    private ActivityMainBinding binding;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        binding = ActivityMainBinding.inflate(LayoutInflater.from(this));

        setContentView(binding.getRoot());

        binding.fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                View viewcustom = getLayoutInflater().inflate(R.layout.custom_dialog, null);
                EditText edt1 = viewcustom.findViewById(R.id.Description);
                EditText edt2 = viewcustom.findViewById(R.id.Age);
                EditText edt3 = viewcustom.findViewById(R.id.Hobby);
                EditText edt4 = viewcustom.findViewById(R.id.City);

                final AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this)
                        .setView(viewcustom)
                        .setPositiveButton("Ok", (dialogInterface, i) -> {
                            String description = edt1.getText().toString();
                            String age = edt2.getText().toString();
                            String Hobby = edt3.getText().toString();
                            String City = edt4.getText().toString();

                            Toast.makeText(MainActivity.this, description, Toast.LENGTH_SHORT).show();
                        });
                alertDialog.setNegativeButton("Cancel", null);
                alertDialog.create().show();
            }
        });
    }
}
  • Related