2012-01-13 75 views
1

我試圖附加一個圖片與Intent.putExtra,但我不知道如何顯示圖像時,我發送到下一個活動。listView onClick期間myIntent.putExtra

這裏是我的onClick:

lv.setOnItemClickListener (new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
      int position, long id) { 
      // When clicked, bring up Mockactivity.class 
     if(position == 1) 
     { 
      Intent myIntent = new Intent(view.getContext(), mockactivity.class); 
      myIntent.putExtra("myDrawable", R.drawable.mydrawable); 
      startActivityForResult(myIntent, 0); 
     } 

它會點擊,並帶來了,如果我走了「myIntent.putExtra」行,我有一個名爲「mockactivity.class」空白的活動,但是當在那裏它什麼也沒做。 任何人都知道如何在即時點擊的下一個活動中顯示該drawable?

+0

有或沒​​有額外的應該不關心新的活動是否實際開始或沒有。 – Maximus 2012-01-13 22:38:48

回答

1

R類中的所有內容都是表示實際資源的整數。

在你需要使用的東西像其他Activity ...

int myDrawableId = getIntent().getIntExtra("myDrawable", -1); 

在這種情況下-1是將如果Intent返回不包含額外的具有該名稱的INT的默認值,以便在嘗試使用它之前測試myDrawableId以查看它是否爲-1。您可以像使用R.drawable.mydrawable一樣使用myDrawableId

編輯:使用此代碼...

ImageView view = (ImageView) findViewById(...); 

...你正在努力尋找的ImageView,而不是被用於其圖像源的繪製。您應該使用...

ImageView view = (ImageView) findViewById(R.id.myImageView); 

...其中myImageViewImageViewidmockactivity.xml佈局文件。如果你這樣做是正確的,那麼簡單地做下面的設置圖像...

view.setImageResource(myDrawableId); 
+0

我做到了,創建了一個ImageView之後,並使用findViewById並將其設置爲myDrawableId,但它說本地變量視圖沒有使用,並提示我如何不使用它? – 2012-01-13 23:27:41

+0

@Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.mockactivity); int myDrawableId = getIntent()。getIntExtra(「myDrawable」,-1); ImageView view =(ImageView)findViewById(myDrawableId); – 2012-01-13 23:28:30

+0

@Nick:看到我的答案編輯。 – Squonk 2012-01-13 23:46:40