デフォルトのalertDialogボックスに表示されているアイコンを動的に設定する方法はありますか?たとえば、私は、次のalertDialog、setIcon()メソッドを使用して、uri変数に内部に格納されたパスを使用して提供するイメージを表示します。デフォルトのalertDialogsでsetIcon()を動的に使用しますか?
private void showProductInfo(){
MyProduct myProduct= (MyProduct) myProductGoldenRetriever();
final AlertDialog alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle("Product Information");
alertDialog.setMessage(myProduct.getMyProductInfo());
alertDialog.setButton("Back", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
showPrompt();
}
});
alertDialog.setIcon(R.drawable.default_img);//<--Here Need to Provide a different image each time
alertDialog.show();
}//endOfShowProductInfo
これは何とか可能ですか、適切な.xmlレイアウトファイルを使用してカスタムalertDialogを作成する必要がありますか?
あなたは正しく理解しましたが、あなたの提案は非常に有望です。しかし、私はそれを修正することができなかったさまざまな方法でそれを試してみました。例えば、私はBitmapDrawableアイコン=新しいBitmapDrawble(res、 "R.drawable.default_img")を試した。私のdrawableディレクトリのimgのために。次に、「/Users/Admin/Desktop/default_img.png」のような画像へのフルパスを試しました。/ – nifo
あなたのファイルがすでにドロウアブルフォルダにある場合は、default_imgを目的のアイコンに変更してください。そしてMyProductクラスでは、setUriとgetUriの代わりに、intを使用してリソースIDを格納します。 setResourceId(R.drawable.image1)。それから 'setIcon(myProduct.getResourceId())';を使います。 2番目の例では、PCから画像を取得しようとしています。あなたはこれをすることはできません。とにかくフルパスではないので、フルパスはC:/Users/Admin/Desktop/default_img.pngのようになります。 – kcoppock
あなたが今述べた戦術に固執します。私の2番目の例に関しては、私はMacを使用しています:)あなたの時間とあなたの興味のために大変ありがとう。 – nifo