Pertanyaan Dinamis mengatur konten AlertDialog kustom


Saya memiliki dialog khusus yang saya tetapkan sebagai fungsi:

public void customDialog(Bitmap bm, String title){
    TextView dialogtext = (TextView)findViewById(R.id.layout_root);
    //For above also tried r.id.popup which is the containing file for the layout
    ImageView dialogimage = (ImageView)findViewById(R.id.popupimage); 

    dialogtext.setText(title);
    dialogimage.setImageBitmap(bm);

    LayoutInflater inflater = getLayoutInflater();
    View layout = inflater.inflate(R.layout.popup, (ViewGroup) findViewById(R.id.layout_root));
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setView(layout);
    builder.show();
}

Dialog gagal setiap kali saya mencoba untuk mengatur bidang XML secara dinamis dengan Null Pointer Exception. Saya bingung, ada ide? Apakah saya harus menambahkan sesuatu ke manifes untuk dialog khusus?


4
2018-02-18 00:32


asal


Jawaban:


lakukan ini dulu:

View layout = inflater.inflate(R.layout.popup, (ViewGroup) findViewById(R.id.layout_root));

Kemudian, setelah Anda menentukan layout, melakukan hal ini:

ImageView dialogimage = (ImageView) layout.findViewById(R.id.popupimage);

Panggilan findViewByID() pada tata letak baru yang Anda buat, bukan pada tampilan konten induk.

Jadi dua perubahan: Memesan, dan layout.findView tidak findView


2
2018-02-18 01:08