我有两个活动(Main& Sub)都包含列表视图以显示图像。我想重复使用子活动来根据主要活动中的单元格点击显示图像(像餐馆菜单这样的东西)。所以我已经声明了一个整数数组(可绘制文件夹中的图像),我想传递给子活动和子辅助
我尝试了下面的代码,但我以Int和Integer冲突结束了。
主要活动
public class AppsMenu extends AppCompatActivity {
ListView appsmainlist;
Integer[] images={R.drawable.res,R.drawable.clo,R.drawable.beu,R.drawable.col,R.drawable.tor,R.drawable.hot};
Integer[][] subarray = {{R.drawable.res1,R.drawable.res2,R.drawable.res3,R.drawable.res4},{R.drawable.clo1,R.drawable.clo2,R.drawable.clo3,R.drawable.clo4}};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_apps_menu);
appsmainlist = (ListView) findViewById(R.id.appsmainlist);
appsmenuadapter appsmenuadapter = new appsmenuadapter(this,images);
appsmainlist.setAdapter(appsmenuadapter);
appsmainlist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent = new Intent(AppsMenu.this,appsview.class);
intent.putExtra("subarray",subarray[i]);
startActivity(intent);
}
});
}
}
子活动
ListView appsviewlist;
Integer [] appsviewarray;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_appsview);
appsviewlist = (ListView) findViewById(R.id.appsviewlist);
// Error goes here
appsviewarray = getIntent().getIntArrayExtra("subarray");
appsviewadapter appsviewadapter = new appsviewadapter(this,appsviewarray);
}
适配器:
public class subadapter extends ArrayAdapter<Integer> {
...
}
非常感谢任何帮助。
答案 0 :(得分:2)
数组是否保留资源ID? 您是否考虑过使用Resource Array?
这样的事情:
<integer-array name="resoruces">
<item>@drawable/amex</item>
<item>@drawable/mastercard</item>
<item>@drawable/mastercard_white</item>
<item>@drawable/visa</item>
</integer-array>
通过这种方式,您可以使用上下文来获取它们。
答案 1 :(得分:0)
创建Bundle并保存为parcelable array