2016-11-21 2 views
-2

私は2つのアクティビティ(メイン& Sub)を持っていて、両方とも画像を表示するリストビューを含んでいます。メインアクティビティ(レストランメニューのようなもの)のセルクリックに応じて画像を表示するためのサブアクティビティを再利用したい。だから、私は、サブアクティビティとサブアドプタに渡す整数配列(Drawableフォルダの画像)の配列を宣言しましたAndroid:アクティビティ間で整数配列を渡す方法は?

私は以下のコードを試しましたが、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

整数の代わりに整数 –

+0

に変更すると、アダプタはそれを除いてはありません!!アダプタ

+0

別の配列を作成して単純に値を渡しますが、ジェネリックを使用する代わりにアダプタコンストラクタを使用することもできます –

答えて

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>

+0

plzは私をいくつかの例に導くことができますか? –

+0

あなたはリソース配列のIDを維持するためのサブアレイを持っています。したがって、単純な変数 'int subarray = 2'を使用することができます。したがって、他のアクティビティに渡すことができ、正しい配列を得ることができます。 '<= "リソース1" 整数配列名> ..' '<= "リソース2" 整数配列名> ..' '<整数配列名= "resource3"> ..' 最後に選択することができます 'if(subarray == 1)context.getIntegerArray(R.array.resource1)... ' 正しいメソッド名を確認してください! – hooloovoo

+0

感謝の男、魅力のように動作します –

関連する問題