一个简单的图片弹出窗口

时间:2016-02-23 18:02:54

标签: android dictionary hashmap android-imageview

所以,我正在为我的寻宝狩猎应用添加一个新功能,这基本上是能够显示图片的线索。通过点击线索文本,我转到ImageView活动,以显示依赖于该线索的图片。问题是,我不知道如何使这项工作。我尝试做一个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活动代码(到目前为止)就是这个......

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语句中的句点。

谢谢, Hendo

1 个答案:

答案 0 :(得分:1)

由于以下两行,代码无法编译:

 Intent imgClue;
 cluePic.putExtras(imgClue);

删除它们并用

替换它们
 startActivity(cluePic);

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

cluePic.putExtra(“MyImageKey”,map.get(“goebel”));

然后在onCreate内的活动(imgClue)中你会做

 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