-1

將圖像從一個活動發送到另一個活動但能夠將文本發送到另一個活動的問題,如果可能的話,將一些源代碼與文件名一起發送並更正錯誤所以請減去所需的代碼,因爲我在過去兩天面臨這個問題,我已經在stackoverflow中提交了這個問題3次,但我沒有得到很好的答案,請有人寫我需要做的正確的事情,併爲我寫需要的代碼,但在這裏我把我的一些代碼:如何將圖像從一個活動發送到另一個,使用列表視圖項目

MainActivity代碼:

list.setOnItemClickListener(new OnItemClickListener() { 

      public void onItemClick(AdapterView<?> parent, View view, 
        int position, long id) { 
      // getting values from selected ListItem 
       String title = ((TextView) view.findViewById 
      (R.id.title)).getText().toString(); 
       String artist = ((TextView) view.findViewById 
      (R.id.artist)).getText().toString(); 
       String duration = ((TextView) view.findViewById 
      (R.id.duration)).getText().toString(); 
       byte[] image = null; 
       Bitmap thumb_url = BitmapFactory.decodeByteArray 
      (image, 0, image.length); 


      // Bitmap bMap = BitmapFactory.decodeByteArray 
      (array, 0, array.length); 

       // Starting new intent 
       Intent in = new Intent 
      (getApplicationContext(), SingleMenuItemActivity.class); 
       in.putExtra(KEY_TITLE, title); 
       in.putExtra(KEY_ARTIST, artist); 
       in.putExtra(KEY_DURATION, duration); 
       in.putExtra(KEY_THUMB_URL, thumb_url); 
       startActivity(in); 

      } 
     });  
    } 
    } 

[R eceivingActivity代碼:

public class SingleMenuItemActivity extends Activity { 

// XML node keys 
private static final String KEY_TITLE = "title"; 
private static final String KEY_ARTIST = "artist"; 
private static final String KEY_DURATION = "duration"; 
private static final String KEY_THUMB_URL = "thumb_url"; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.single_list_item); 

    // getting intent data 
    Intent in = getIntent(); 

    // Get XML values from previous intent 
    String title = in.getStringExtra(KEY_TITLE); 
    String artist = in.getStringExtra(KEY_ARTIST); 
    String duration = in.getStringExtra(KEY_DURATION); 

    ImageView image = (ImageView)findViewById(R.id.thumb_url); 
    Object thumb_url = null; 
    View bitmap = null; 
    bitmap.setBackgroundResource((Integer) thumb_url); 
    // Displaying all values on the screen 
    TextView lblName = (TextView) findViewById(R.id.name_label); 
    TextView lblCost = (TextView) findViewById(R.id.email_label); 
    TextView lblDesc = (TextView) findViewById(R.id.mobile_label); 

    //what code to write for image here 

    lblName.setText(title); 
    lblCost.setText(artist); 
    lblDesc.setText(duration); 

} 
} 

XML文件中的代碼:

<ImageView  
     android:id="@+id/thumb_url" 
     android:layout_width="50dip" 
     android:layout_height="50dip" 
     android:src="@drawable/rihanna"/> 


    <TextView android:id="@+id/name_label" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:textSize="25dip" 
     android:textStyle="bold" 
     android:paddingTop="10dip" 
     android:paddingBottom="10dip" 
     android:textColor="#43bd00"/> 

     <TextView android:id="@+id/email_label" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:textColor="#acacac"/> 

    <TextView android:id="@+id/mobile_label" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:textStyle="bold"/> 
</LinearLayout> 
+0

你可以從意圖獲得圖像。 – rajeshwaran

回答

1

我可能是錯的,但我覺得有一個限制的嘗試,意圖通過物體的大小(失敗粘結劑事務錯誤?)。

最好的變體是將圖像存儲在某個地方(內存或磁盤緩存),並只傳遞圖像鏈接到您的活動,因此它會從緩存中檢索圖像。即使第二個活動重新啓動,您也可以輕鬆地將鏈接保存在某處(onSaveInstanceState),而無需使用原始位圖進行操作。

0

試試這個

1.

使用意向在=新意圖(您activity.this,SingleMenuItemActivity.class);代替

意圖在新=意向(getApplicationContext(),SingleMenuItemActivity.class);

2.

Intent in = getIntent(); 

    // Get XML values from previous intent 
    String title = in.getStringExtra(KEY_TITLE); 
    String artist = in.getStringExtra(KEY_ARTIST); 
    String duration = in.getStringExtra(KEY_DURATION); 
    Bitmap bitmap =(Bitmap) in.getParcelableExtra(KEY_THUMB_URL); 

    ImageView image = (ImageView)findViewById(R.id.thumb_url); 


    // Displaying all values on the screen 
    TextView lblName = (TextView) findViewById(R.id.name_label); 
    TextView lblCost = (TextView) findViewById(R.id.email_label); 
    TextView lblDesc = (TextView) findViewById(R.id.mobile_label); 

    image.setImageBitmap(bitmap); 

    lblName.setText(title); 
    lblCost.setText(artist); 
    lblDesc.setText(duration); 

} 
+0

對象thumb_url = null的用途是什麼; 查看位圖= null; bitmap.setBackgroundResource((Integer)thumb_url);? –

+0

謝謝你,你真好,你已經解決了我的95%的問題,這樣一個有用的代碼,但仍然有問題,如果我寫這個代碼: - android:src =「@ drawable/rihanna」在xml文件,然後只有每次點擊listview項目時纔會得到該特定圖像,但是如果我刪除了這一行,那麼我在圖像視圖位置獲得了空白區域,所以請告訴我需要在ImageView的singleviewitem.xml文件中寫入以獲取listview項目圖像...再次感謝 – user1682124

+0

@AshaSoman是的,但我得到這個錯誤:「Key thumb_url期望Parcelable但值是一個java.lang.String。默認值已返回。」代碼是一樣的。 – LikePod

0

位圖實現Parcelable,所以你總是可以通過它的意圖:

Intent in = new Intent 
     (getApplicationContext(), SingleMenuItemActivity.class); 
      in.putExtra(KEY_TITLE, title); 
      in.putExtra(KEY_ARTIST, artist); 
      in.putExtra(KEY_DURATION, duration); 
      in.putExtra(KEY_THUMB_URL, thumb_url); 
      startActivity(in); 

和檢索它的另一端:

Bitmap bitmap = (Bitmap) intent.getParcelableExtra("BitmapImage"); 
image.setImageBitmap(bitmap); 
+0

是的,但我得到這個錯誤:「Key thumb_url期望Parcelable但值是一個java.lang.String。默認值已返回。」代碼是一樣的。 – LikePod

相關問題