私は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> {
...
}
。
整数の代わりに整数 –
に変更すると、アダプタはそれを除いてはありません!!アダプタ –
別の配列を作成して単純に値を渡しますが、ジェネリックを使用する代わりにアダプタコンストラクタを使用することもできます –