【问题标题】:A simple image popup一个简单的图像弹出
【发布时间】:2016-06-05 17:23:59
【问题描述】:

因此,我在我的寻宝游戏应用程序中添加了一项新功能,该功能基本上可以显示图片以获取线索。通过点击线索文本,我转到 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 语句中的句点。

谢谢, 亨多

【问题讨论】:

    标签: android dictionary hashmap android-imageview


    【解决方案1】:

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

     Intent imgClue;
     cluePic.putExtras(imgClue);
    

    删除它们并替换为

     startActivity(cluePic);
    

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

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

    然后在onCreate 内的您的活动(imgClue)中您会这样做

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

    虽然您的代码并不完美,但它是一种非常好的方法。 :-)


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

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

    【讨论】:

    • 在这一行中,'cluePic.putExtra("MyImageKey", map.get("goebel"));' “goebel”不是图像键吗?我想我不明白你所指的“MyImageKey”是什么。
    • 感谢您的帮助和如此迅速的回复。 :-)
    • @DaveHenderson 这一行有两个键。您是正确的"goebel" 是您地图的关键。然后,您将地图中的值放入 Intent 并使用另一个键将其发送到下一个活动:-)
    猜你喜欢
    • 2015-07-09
    • 1970-01-01
    • 2011-08-24
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多