私はハッシュマップを作成し、それを別のアクティビティに渡しています。ここに私のコードがあります
bt6.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(gkwebbrowserActivity.this, Icons.class);
intent.putExtra("hashmap", orderMap);
try {
startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}
}
});
そして、私の2番目のアクティビティでは、一連の画像ボタンを作成し、ハッシュマップに格納された画像ビットマップを設定しています。ここに2番目のアクティビティのコードがあります
public class Icons extends Activity {
GridLayout gl;
ImageButton imb1;
HashMap<Integer, Bitmap> ordermap;
int i;
/* (non-Javadoc)
* @see android.app.Activity#onCreate(android.os.Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.icon);
try {
ordermap= new HashMap<Integer, Bitmap>();
ordermap = (HashMap<Integer, Bitmap>) getIntent().getSerializableExtra("hashmap");
} catch (ClassCastException e) {
e.printStackTrace();
}
gl=(GridLayout)findViewById(R.id.layout);
i=ordermap.size();
gl.setUseDefaultMargins(true);
gl.setColumnCount(2);
gl.setRowCount(i/2);
Iterator entries = ordermap.entrySet().iterator();
while (entries.hasNext()) {
Entry thisEntry = (Entry) entries.next();
imb1 = new ImageButton(this);
imb1.setImageBitmap((Bitmap)thisEntry.getValue());
gl.addView(imb1);
}
}
}
しかし、2 番目のアクティビティが開始されず、最初のアクティビティが 2 番目のアクティビティを呼び出した後にクラッシュします。ビットマップをハッシュマップに保存した後、2 番目のアクティビティを呼び出しています。問題の内容と削除方法を教えてください。これは logcat です。
D/dalvikvm(925): GC_CONCURRENT freed 429K, 8% free 10618K/11463K, paused 8ms+4ms
D/Capturing screenshot of webview(925): First screenshot
D/dalvikvm(925): GC_FOR_ALLOC freed 4K, 8% free 10614K/11463K, paused 76ms
I/dalvikvm-heap(925): Grow heap (frag case) to 11.249MB for 855616-byte allocation
D/dalvikvm(925): GC_CONCURRENT freed <1K, 8% free 11450K/12359K, paused 4ms+11ms
W/EGL_emulation(925): eglSurfaceAttrib not implemented
E/JavaBinder(925): !!! FAILED BINDER TRANSACTION !!!