一个简单的图像弹出窗口

A simple image popup

因此,我正在为我的寻宝游戏应用程序添加一项新功能,该功能基本上是显示图片以获取线索的功能。通过点击线索文本,我转到 ImageView Activity 以显示依赖于该线索的图片。问题是,我不知道如何进行这项工作。我试着做一个 Map/HashMap 组合....

Map<String, Integer> map = new HashMap<String, Integer>();
map.put("info", R.drawable.clue0);
map.put("goebel", R.drawable.clue1);
map.put("church", R.drawable.clue2);
map.put("confed", R.drawable.clue3);
map.put("ban", R.drawable.clue4);
map.put("jr", R.drawable.clue5);
map.put("ohara", R.drawable.clue6);
map.put("db", R.drawable.clue7);

然后用...填充图片

imgClue.setImageResource(map.get("goebel"));

点击文本线索有这个代码:

txtClue.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View v) {
                Intent cluePic = new Intent(FCRun.this, imgClue.class);
                Intent imgClue;
                cluePic.putExtras(imgClue);
            }

        });

ImageView Activity 代码(到目前为止)是这样的...

public class imgClue extends Activity{
public static ImageView iClue;

@Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.imgclue);

}

public static void setImageResource(Integer integer) {

    }}

我的近距离警报传递一个 ID 来表示正在显示的位置。我使用 Switch(ID)/Case 来根据位置设置屏幕上显示的文本。我希望我可以在 Case 语句中添加另一行来告诉要显示的图片。

所以我的问题是,我的做法是错误的还是我的代码完全错误?

代码无法编译,因为它不喜欢我的 MAP 语句中的句点。

谢谢, 亨多

由于这两行代码无法编译:

 Intent imgClue;
 cluePic.putExtras(imgClue);

删除它们并替换为

 startActivity(cluePic);

这也是错误的imgClue.setImageResource(map.get("goebel"));您不应将地图的结果(即 Integer 可绘制资源)`设置为静态方法。你应该通过意图传递它,例如:

cluePic.putExtra("MyImageKey", map.get("goebel"));

然后在 activity (imgClue) 里面 onCreate 你会做

 int imageDrawableResource = getIntent().getIntExtra("MyImageKey", 0);

尽管您的代码并不完美,但这是一种非常好的实现方式。 :-)


为了让您的代码以后更易于理解,我建议您进行以下更改:

  • Map<String, Integer> map 更改为 Map<String, Integer> cluePictures
  • txtClue 更改为 clueTextView
  • Intent cluePic 更改为 Intent cluePictureIntent
  • imgClue extends Activity 更改为 ImageClueActivity extends Activity
  • public static ImageView iClue 中删除静态关键字并设为私有:private ImageView clueImageView