2016-02-23 28 views
1

所以,我加入了新的功能,我的寻宝应用程序,它基本上是显示的线索图片的能力。通过点击线索的文字,我去一个ImageView的活动显示图片依赖于线索。问题是,我不知道如何使这项工作。我试着做一个地图/ 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

,因为这两行的代码不能编译:

Intent imgClue; 
cluePic.putExtras(imgClue); 

删除它们,并与

startActivity(cluePic); 

取代它们,这也是错误imgClue.setImageResource(map.get("goebel"));你不应该从地图设置结果(即In teger drawable资源)`作为一种静态方法。你应该将其穿过的意图,例如:

cluePic.putExtra( “MyImageKey”,map.get( “格贝尔”));

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

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

虽然你的代码是不完美的,它是一个完全没有办法做到这一点。:-)


为了使你的代码更容易理解自己稍后我会建议这些变化:

  • 变化Map<String, Integer> mapMap<String, Integer> cluePictures
  • 变化txtClueclueTextView
  • 变化Intent cluePicIntent cluePictureIntent
  • 更改imgClue extends ActivityImageClueActivity extends Activity
  • public static ImageView iClue删除静态关键字和使私人:private ImageView clueImageView
在此行
+0

'cluePic.putExtra( “MyImageKey”,map.get( “格贝尔”));'是不是“goebel”图像的关键?我想我不明白你指的是什么“MyImageKey”。 –

+0

非常感谢您的帮助和回复。 :-) –

+0

@DaveHenderson这行有两个键。你是对的''“goebel”是你地图的关键。然后,您将地图中的值放入“Intent”中,并使用另一个键将其发送到下一个活动:-) – Blundell