Android:如何在活动之间传递整数数组?
我有两个活动(主&小)都包含列表视图来显示图像。我想根据主要活动中的单元格点击来重复使用子活动来显示图像(有些事情像餐馆菜单)。所以我宣布了一个整数数组(在drawable文件夹中的图像),我想传递给子活动和subadapterAndroid:如何在活动之间传递整数数组?
我尝试下面的代码,但我结束了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> {
...
}
任何帮助将不胜感激。
创建捆绑包并保存为可分组阵列
Do Arrays是否保留资源ID? 您是否想过使用资源阵列?
事情是这样的:
<integer-array name="resoruces"> <item>@drawable/amex</item> <item>@drawable/mastercard</item> <item>@drawable/mastercard_white</item> <item>@drawable/visa</item> </integer-array>
通过这种方式,你可以使用上下文得到它们。
PLZ你能指导我一些例子吗? –
你有子阵列保持资源id的数组。所以你可以使用一个简单的变量'int subarray = 2',这样你就可以将它传递给其他活动,并且你可以得到正确的数组。 ' ..'' ..'' ..' 你可以做出选择 'if(subarray == 1)context.getIntegerArray(R.array.resource1)...' 请检查正确的方法名! – hooloovoo
谢谢你,作品像魅力 –
更改为原始int而不是整数 –
如果我这样做,适配器将不会除了它!适配器 –
创建另一个数组,然后简单地传递值,但是您也可以使用适配器构造函数代替使用泛型 –