2012-11-28 19 views
-2

可能重複:
How to pass drawable between activities如何圖像和列表視圖中的文本傳遞到另一個活動

我要傳遞的圖像和文字在此列表視圖到另一個活動。有人可以向我解釋如何將圖像和文本傳遞給另一個同時顯示圖像和文本的活動

在代碼中有兩個活動home活​​動和list_display在這個list_display類中創建自定義listview與圖像和文本,列表視圖以圖片和文字,現在我想通過圖片和文字到第三活性的同時顯示圖像和文字

首頁活動

public void onClick(View v) { 
    // TODO Auto-generated method stub 
    if(v.getId()==R.id.iv_animals) 
    { 
     Intent intent=new Intent(Home_Activity.this,List_Display.class); 
     intent.putExtra("type", "animal"); 
     startActivity(intent); 
    }else if(v.getId()==R.id.iv_wild) 
    { 
     Intent intent=new Intent(Home_Activity.this,List_Display.class); 
     intent.putExtra("type", "wild"); 
     startActivity(intent); 
    } 

package com.myown.kidszoo; 

import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 

import android.app.Activity; 
import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.BaseAdapter; 
import android.widget.GridView; 
import android.widget.ImageView; 
import android.widget.ListView; 
import android.widget.SimpleAdapter; 
import android.widget.TextView; 

    public class List_Display extends Activity implements OnItemClickListener { 
Object animalArray[][]={{"animal",R.drawable.a_american_alligator,"ALIGATOR"},"animal",R.drawable.bear,"BEAR"}, 
         {"animal",R.drawable.camel,"CAMEL"},{"animal",R.drawable.dog,"DOG"}, 
         {"wild",R.drawable.elephant,"ELEPHANT"},{"wild",R.drawable.fox,"FOX"}, 
         {"wild",R.drawable.giraffe,"GIRAFFE"},{"wild",R.drawable.hippopotamus,"HIPPOPOTAMUS"}, 


String i; 
int lstIndex; 
int pos; 
public Context mContext; 
@Override 
public void onCreate(Bundle instance) { 
    super.onCreate(instance); 
    setContentView(R.layout.list_sample); 
    i=getIntent().getExtras().getString("type"); 
    List<HashMap<String,Object>> nameList=new ArrayList<HashMap<String,Object>>(); 
    HashMap<String,Object> hm=new HashMap<String, Object>(); 
    if(i.equals("animal")) 
    { 
    for(int i=0;i<animalArray.length;i++) { 
      hm.put("name", animalArray[i][1]); 
      hm.put("image", animalArray[i][2]); 
      nameList.add(hm); 
    }} 
    if(i.equals("wild")) 
    { 
    for(int i=0;i<animalArray.length;i++) { 
      hm.put("name", animalArray[i][1]); 
      hm.put("image", animalArray[i][2]); 
      nameList.add(hm); 
    }} 


    ListView lv1=(ListView)findViewById(R.id.ListView1); 
    String from[]={"image","name"}; 
    int to[]={R.id.iv_home_singlelist,R.id.tv_name_single}; 
    SimpleAdapter adapter=new SimpleAdapter(getApplicationContext(), nameList, R.layout.single_list, from, to); 
    lv1.setAdapter(adapter); 
    lv1.setOnItemClickListener(this); 

} 
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { 
    // TODO Auto-generated method stub 
    Intent intent=new Intent(List_Display.this,Fullimage_Display.class); 
    // 
    // what data i need to give here to go to next activity 
    startActivity(intent); 

}; 
} 
+1

ü需要顯示選中的列表項(圖片+文字),在接下來的活動中,對嗎?如果是這樣,使用將這些數據類型傳遞給下一個活動並在下一個活動中檢索它們。 –

+0

你正在哪裏傳遞一張圖片?記住你不能直接傳遞圖像文件,你需要先解碼它 –

+0

這會幫助你。 http://stackoverflow.com/questions/8407336/how-to-pass-drawable-between-activities 乾杯 –

回答

0

如果你需要傳遞兩個活動之間的景象,首先必須將圖像轉換爲位圖,然後使用此代碼傳遞位圖

Intent intent = new Intent(Current.this, Next.class); 
intent.putExtra("bmp", bitmap); // for image 
intent.putExtra("text", text); //for text 
startActivity(intent); 

在活動兩個用這個,

Bitmap bitmap = getIntent().getParcelableExtra("bmp"); 
0

你不能傳遞通過意向的特大型圖像。但在你的代碼中,似乎所有的圖像都是可繪製的資源。所以你可以傳遞只是「int」數字的資源ID,然後在下一個活動中從資源中重新加載圖像。

0

實際上,您可以將圖像轉換爲位圖,但我認爲它沒有經過優化,可能需要很長時間。 儘可能多的,你應該把你的額外的圖像的參考(像它的資源ID)。

0

把位圖的緩衝器到putExtra,如下:

Bitmap.getPixels(INT [] mybuffer,...)

Intent.putExtra( 「MyBuffer」,mybuffer)

從其他活動得到它,只是做:

INT [] mynewbuffer = Intent.getIntArrayExtra(「MyBuffer 「)

位圖MYBITMAP = Bitmap.createBitmap(mybuffer,...)

相關問題