データ(グリッドから選択されたアイテムの位置)を親アクティビティに戻そうとしていますが、コードが失敗します。debbugerは、子アクティビティで「data.putExtra( "POS_ICON"、position)」のキーとデータを正しく取得する方法を示しますが、親アクティビティでonActivityResult()を実行すると、debbugerはキーなしの「data」を表示します。データが返されました...データがコンテンツを失ったようなものです。私は他の投稿やチュートリアルをフォローしましたが、方法はありません。助けてください。
親の活動:
public void selIcono(View v){
Intent intent = new Intent (this, SelIconoActivity.class);
startActivityForResult(intent,PICK_ICON_REQUEST);
}
protected void onActivityResult(int requestCode, int resultCode,
Intent data) { //here's the problem: no data is returned!!
if (requestCode == PICK_ICON_REQUEST) {
if (resultCode == RESULT_OK) {
// An icon was picked.
putIcon(data.getIntExtra("POS_ICON", -1));
}
}
}
子供の活動:
public class SelIconoActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sel_icono);
GridView gridview = (GridView)findViewById(R.id.gr_iconos);
gridview.setAdapter(new ImageAdapter (this));
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Intent data = new Intent();
data.putExtra("POS_ICON", position);
setResult(Activity.RESULT_OK, data);
finish();
}
});
}
}