Динамически установить пользовательский контент AlertDialog - PullRequest
4 голосов
/ 18 февраля 2012

У меня есть настраиваемый диалог, который я настроил как функцию:

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();
}

Диалог завершается неудачно, когда я пытаюсь установить поля XML динамически с исключением из-за пустого указателя. Я в тупике, есть идеи? Нужно ли что-то добавлять в манифест для настраиваемого диалога?

1 Ответ

2 голосов
/ 18 февраля 2012

сделать это первым:

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

Затем, после определения layout, сделайте следующее:

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

Вызовите findViewByID() в новом созданном вами макете, а не в представлении родительского содержимого.

Итак, два изменения: порядок и layout.findView не findView

...