2

ユーザーがクリックするとダイアログボックスが開き、その中に大きな画像が表示されると思われるImageviewがあります。
私が持っているImageviewはレイアウトにあり、コードは次のとおりです。ImageView image_terrain =(ImageView)findViewById(R.id.imageView2); image_terrain.setOnClickListener(new OnClickListener(){

        public void onClick(View v) {

            Intent intent = new Intent(getApplicationContext(), Universitymap.class);
            intent.putExtra("imageName", "sattelite");

            Dialog d = new Dialog(Universitymap.this);
            d.setContentView(R.layout.image_dialog);
            d.show();
        }
    });

名前を送信して、クリックした画像を送信するためのインテントを使用します。

今image_dialogレイアウトで私はこのコードを持っています:

Intent intent = new Intent();
String fileName = intent.getExtras().getString("imageName");
loadImage(fileName);

image_dialogレイアウトクラスに画像を読み込む関数は次のとおりです。

private void loadImage(String fileName){
    ImageView img = (ImageView)findViewById(R.id.img_Picture);
    int resID = getResources().getIdentifier(fileName, "drawable", "com.neema.smobile.Main");
    img.setImageResource(resID);
}

一言=それは機能しません。誰か助けてくれたら嬉しいです。

4

2 に答える 2

1

これを試して

int imageResource = getResources().getIdentifier(fileName, null, getPackageName());

imageview = (ImageView)findViewById(R.id.img_Picture);
Drawable res = getResources().getDrawable(imageResource);
imageView.setImageDrawable(res);
于 2012-12-08T16:34:16.667 に答える
0

インテントを介してファイル名を渡すのはなぜですか?同じアクティビティでダイアログを作成する場合は、カスタムコンストラクターを使用してカスタムダイアログを作成し、ファイル名を変更できます。

また、この行は意味がないと思います:

Intent intent = new Intent();
String fileName = intent.getExtras().getString("imageName");

送信したインテントではなく、新しいインテントから文字列をキャッチしようとしているため。

それとも私はあなたのやり方を誤解しましたか?

意図は、ダイアログではなくアクティビティを開始することです:)

編集:

class CustomDialog extends Dialog{
    private String fileName;
    public CustomDialog(String fileName){
        this.fileName = fileName;
        this.setContentView(R.layout.your_dialog_layout);

    }

   @Override
   public void onCreate(Bundle savedInstanceState){
       ImageView image = (ImageView) findById(R.id.image);
       image.setBackgroundResource(....//set your Image like mentioned from kumaand using your saved fileName
   } 
}

動作するはずです。詳細については、http://about-android.blogspot.de/2010/02/create-custom-dialog.htmlをご覧ください。

于 2012-12-08T16:39:25.707 に答える