2016-03-08 43 views
1

enter image description here的Android:如何從一個活動發送圖像從一個對自定義的ListView

這是ListView什麼,我想的是,當我點擊任何列表項的它在另一個活動中打開選擇另一個活動。

到目前爲止,所有TextView文本都從MainActivity傳遞到ResultActivity,但我無法發送圖像。

MainActivity

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

      TextView description = (TextView) view.findViewById(R.id.book_description); 
      TextView title_ = (TextView) view.findViewById(R.id.book_title); 
      TextView isbn_ = (TextView) view.findViewById(R.id.book_isbn); 

      String _title = title_.getText().toString(); 
      String _isbn = isbn_.getText().toString(); 
      String _description = description.getText().toString(); 

      Intent myIntent = new Intent(MainActivity.this, ResultActivity.class); 
      myIntent.putExtra("title", _title); 
      myIntent.putExtra("isbn", _isbn); 
      myIntent.putExtra("description", _description); 

      startActivity(myIntent); 
     } 
}); 

ResultActivity

public class ResultActivity extends ActionBarActivity { 
    TextView title, isbn, description; 
    ImageView imageView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_result); 

     title=(TextView) findViewById(R.id.r_title); 
     isbn=(TextView) findViewById(R.id.r_isbn); 
     description=(TextView) findViewById(R.id.r_description); 

     title.setText(getIntent().getStringExtra("title")); 
     isbn.setText(getIntent().getStringExtra("isbn")); 
     description.setText(getIntent().getStringExtra("description")); 
     description.setMovementMethod(new ScrollingMovementMethod()); 
    } 

} 

回答

1

你是如何設定的形象呢?如果您是從網絡加載它,那麼您可以將圖像URL作爲String加入您的意圖。將圖像存儲到緩存中,然後使用URL從ResultActivity中獲取該圖像。

如果要設置從Drawable的圖像,那麼你可以通過任何方便的指示,如位置,ID等任何可以更好。

在您需要使用鑰匙(網址,ID,位置等)以恢復圖像的任何情況。不要試圖將整個圖像發送到不同的活動,這是太多的數據不容納在對象。

+0

非常感謝你,是的,我從網絡加載它。但我不知道如何緩存它,我不知道如何將圖像URL作爲一個字符串的意圖。你需要我的代碼嗎? – user2983359

+0

要將圖片網址轉化爲意圖很簡單,您已經爲標題,isbn和描述執行此操作。它看起來像這樣:'myIntent.putExtra(「url」,url);'其中url變量實際上是您用來從服務器加載圖像的URL。要緩存圖片請使用:http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html。根據您的需要使用內存或磁盤緩存。 –

+0

我也會考慮閱讀本:http://stackoverflow.com/questions/541966/lazy-load-of-images-in-listview 有很多在'ListView'懶加載圖像不同的解決方案,其處理一切爲你(懶惰圖像加載,緩存,多線程,OOM問題等)這些解決方案中的許多都非常穩定,並被許多流行的應用程序使用。如果你使用其中的一個,你的圖像加載將更加強大,然後從頭開始編寫你自己的解決方案。 –

相關問題