0

AlertDialog に画像を追加しようとすると問題が発生します。このイメージは常に同じではなく、毎回異なります。

私がやろうとしているのは、AlertDialog に画像を追加することです (可能であれば、ダイアログのアイコンとしてではなく、imageView として) 彼の名前を知っています。問題は、何千もの画像があることです。

1) したがって、builder.setIcon(int iconid) を呼び出すときに、画像の名前ではなく iconid を渡す方法がわかりません。毎回異なる画像を使用していることを考慮してください。

2)画像をimageViewとして配置する方法に関するアドバイスはありますか(このダイアログに関連付けられたレイアウトがあることを考慮して)?

更新String s = scanQR.substring(start, 21);QR-CODEリーダーを使用したスキャンの結果です。

この文字列には、AlertDialog に入れたい画像の名前が含まれています。ダイアログのコードは次のとおりです。

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {


AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();

    builder.setView(inflater.inflate(R.layout.dialog_single_work, null))

               //HERE IS THE ICON (BETTER WILL BE AN IMAGEVIEW, BUT DUNNO HOW TO DO IT)
           .setIcon()
           .setPositiveButton("POS", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {

        }
    })
    .setNegativeButton("NEG", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {

        }
    });
return builder.create();
}
}

メソッド .setIcon には、int (iconid) または描画可能オブジェクトが必要です。しかし、私が持っているのは、画像の名前 (String s) だけです。どうすれば解決できますか?

4

1 に答える 1

1

builder.setIcon();AlertDialog実際には、ダイアログのタイトルの左側に配置されるアイコンを設定しています。私が理解しているように、アイコンではなく画像をダイアログに追加したいと考えています。これを実現するには、ダイアログにカスタム ビューを追加する必要があります。

View mView = View.inflate(this, R.layout. dialog_single_work, null);
ImageView mImage = (ImageView) mView.findViewById(R.id.image);
// use this ImageView to set your image
builder.setView(mView);

ImageView画像を設定できるレイアウトに追加します。それはあなたが達成しようとしていることですか?

編集: 次のようにします:

public void showDialog(int result){
     switch(result){
     case 0:
        mImageView.setImageResource(R.drawable.my_icon);
      break;
     case 1:
        mImageView.setImageResource(R.drawable.my_second_icon);
      break;
      // and so on... or do it with string or whatever is your response.
     }
}

Edit2: 次のように文字列を使用して、リソースから画像を取得できます。

String mDrawableName = "myappicon";
int resID = getResources().getIdentifier(mDrawableName , "drawable", getPackageName());
于 2013-05-09T14:41:04.000 に答える