2014-09-05 90 views
0

当我向主活动发送对象时,我的应用程序总是崩溃。我需要它,所以主要活动显示我的班级的字符串,但每次我按第二个活动中的行并返回到主要活动的应用程序崩溃可以有人请帮助我解决此问题,谢谢。将对象发送给其他活动时出错

我的课以下

public class Ship implements Serializable { 


public String test() 
{ 
    String s = "Hello Android!"; 
    return s; 
} 

}

次活动

hangarList.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) { 


      Intent sendListEvents = new Intent(); 
      if(position == 1) 
      { 

       Ship test = new Ship(); 
       sendListEvents.putExtra("ship1", test); 

      } 
      //insert position events ^^^ 
      setResult(RESULT_OK, sendListEvents); 


} 
    }); 

主要活动如下

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == result) { 

     if (resultCode == RESULT_OK) { 

      Intent getData = getIntent(); 
      Ship ship1 = (Ship) getData.getSerializableExtra("ship1"); 
      String s = ship1.test(); 
      test.setText(s); 

     } 
    } 

}

+0

你点击了哪一行?只有当你点击第二行时,你的意图才会包含额外的内容。此外,你把“ship1”并获得“Ship1”。感觉不同 – 2014-09-05 23:20:26

+1

从['LogCat'](http://developer.android.com/tools/help/logcat.html)提供堆栈跟踪。 – 2014-09-05 23:21:30

+0

@AlexanderZhak我将Ship1更改为ship1,但仍然不起作用 – XetronProgrammer 2014-09-05 23:46:11

回答

0

尝试更换此:

Intent getData = getIntent(); 
Ship ship1 = (Ship) getData.getSerializableExtra("Ship1"); 

有了这个:

Ship ship1 = (Ship) data.getSerializableExtra("ship1"); 

而且,我想,当建议在做 “SHIP1” 最后的静态常量的值,以避免错别字参考它。如果您需要知道列表中被点击的位置,您可以将其作为另一个意图额外传递。

相关问题