Kedengarannya seperti peluang bagus untuk menggunakan AlertDialog .
Sebagai dasar tampaknya, Android tidak memiliki dialog built-in untuk melakukan ini (sejauh yang saya tahu). Untungnya, ini hanya pekerjaan ekstra di atas untuk menciptakan AlertDialog standar. Anda hanya perlu membuat EditText agar pengguna dapat memasukkan data, dan mengaturnya sebagai tampilan AlertDialog. Anda dapat menyesuaikan jenis input yang diizinkan menggunakan setInputType , jika perlu.
Jika Anda dapat menggunakan variabel anggota, Anda cukup mengatur variabel ke nilai EditText, dan itu akan tetap ada setelah dialog telah diberhentikan. Jika Anda tidak dapat menggunakan variabel anggota, Anda mungkin perlu menggunakan pendengar untuk mengirim nilai string ke tempat yang tepat. (Saya dapat mengedit dan menguraikan lebih banyak jika ini yang Anda butuhkan).
Di dalam kelas Anda:
private String m_Text = "";
Di dalam OnClickListener tombol Anda (atau dalam fungsi yang dipanggil dari sana):
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Title");
// Set up the input
final EditText input = new EditText(this);
// Specify the type of input expected; this, for example, sets the input as a password, and will mask the text
input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
builder.setView(input);
// Set up the buttons
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
m_Text = input.getText().toString();
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.show();
global Context, Context cont;
dan kemudian, ganti "ini" di alertdialog olehcont
. AlertDialog.Builder builder = new AlertDialog.Builder (lanjutan); input EditText akhir = EditText (lanjutan) baru;Saya akan menambahkan jawaban @ Aaron dengan pendekatan yang memberi Anda kesempatan untuk mendesain kotak dialog dengan cara yang lebih baik. Berikut ini adalah contoh yang disesuaikan:
Berikut ini contoh tata letak yang digunakan untuk membuat dialog EditText:
Hasil akhir:
sumber
getView()
denganfindViewById(android.R.id.content)
dan itu semua bekerja seperti pesona. Terima kasih banyak untuk berbagi :)(ViewGroup)
!@dimen/content_padding_normal
?Bagaimana dengan CONTOH ini ? Tampaknya mudah.
sumber
Jika Anda ingin beberapa ruang di
left
danright
dariinput
pandangan, Anda dapat menambahkan beberapa padding sepertidimens.xml
Semoga ini bisa membantu
sumber
resources
?Saya merasa lebih bersih dan lebih dapat digunakan kembali untuk memperluas
AlertDialog.Builder
untuk membuat kelas dialog kustom. Ini untuk dialog yang meminta pengguna untuk memasukkan nomor telepon. Nomor telepon standar juga dapat diberikan dengan meneleponsetNumber()
sebelum meneleponshow()
.InputSenderDialog.java
dialog_input_sender_number.xml
Pemakaian:
sumber
@LukeTaylor: Saat ini saya memiliki tugas yang sama (membuat popup / dialog yang berisi EditText) ..
Secara pribadi, saya menemukan rute yang sepenuhnya dinamis menjadi agak membatasi dalam hal kreativitas.
SEPENUHNYA LAYOUT DIALOG KUSTOM:
Daripada mengandalkan sepenuhnya pada Kode untuk membuat Dialog, Anda dapat sepenuhnya menyesuaikannya seperti:
1) - Buat
Layout Resource
file baru .. Ini akan bertindak sebagai Dialog Anda, memungkinkan kebebasan kreatif penuh!CATATAN: Lihat pedoman Desain Bahan untuk membantu menjaga semuanya tetap bersih dan tepat sasaran.
2) - Berikan ID untuk semua
View
elemen Anda .. Dalam kode contoh saya di bawah ini, saya punya 1EditText
, dan 2Buttons
.3) - Buat
Activity
denganButton
, untuk tujuan pengujian .. Kami akan mengembang dan meluncurkan Dialog Anda!Sepotong kue! Kebebasan kreatif penuh! Pastikan untuk mengikuti Pedoman Materi;)
Saya harap ini membantu seseorang! Biarkan aku tahu apa yang kalian pikirkan!
sumber
Ini bekerja untuk saya
Bagaimana cara menelepon? (Nama aktivitas saat ini)
showForgotDialog (current_activity_name.this);
sumber