2016-11-21 92 views
-2

我有两个活动(主&小)都包含列表视图来显示图像。我想根据主要活动中的单元格点击来重复使用子活动来显示图像(有些事情像餐馆菜单)。所以我宣布了一个整数数组(在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> { 
... 
} 

任何帮助将不胜感激。

+0

更改为原始int而不是整数 –

+0

如果我这样做,适配器将不会除了它!适配器

+0

创建另一个数组,然后简单地传递值,但是您也可以使用适配器构造函数代替使用泛型 –

回答

0

创建捆绑包并保存为可分组阵列

2

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>

通过这种方式,你可以使用上下文得到它们。

+0

PLZ你能指导我一些例子吗? –

+0

你有子阵列保持资源id的数组。所以你可以使用一个简单的变量'int subarray = 2',这样你就可以将它传递给其他活动,并且你可以得到正确的数组。 '<整数阵列名称= “资源1”> ..'' <整数阵列名称= “资源2”> ..'' <整数阵列名称= “resource3”> ..' 你可以做出选择 'if(subarray == 1)context.getIntegerArray(R.array.resource1)...' 请检查正确的方法名! – hooloovoo

+0

谢谢你,作品像魅力 –