2012-11-29 16 views
0

我試圖將數據(從網格中選取的項的位置)返回給父活動,但我的代碼失敗。 debbuger顯示'data'如何正確獲取子activity的「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();   
      } 
     });  
    }  
} 
+1

而不是'putIcon(data.getIntExtra( 「POS_ICON」,替換你的代碼putIcon(data.getIntExtra("POS_ICON", -1)); - 1));',你可以嘗試'putIcon(data.getExtras()。getInt(「POS_ICON」,-1));'? –

+0

黃,你的答案data.getExtras()。getInt(「POS_ICON」,-1)是正確的!它運行完美。非常感謝。 – user23

+0

感謝您的反饋,請接受我的回答,以便您的問題被標記爲已解決。 –

回答

2

與此

putIcon(data.getExtras().getInt("POS_ICON", -1));