我已經使用parcelable成功傳遞了對象的數組列表。但是當我試圖將一個對象從一個活動傳遞給另一個時,它不起作用。這個Parcelable對象傳遞有什麼問題?
在第一活性(ShowActivity)中,i有一個GridView和的onclick我想一個對象發送到另一個活動並顯示1個一個對象的值的結果:
ShowActivity ::
gridView.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View v,int position, long id)
{
aStudent = students.get(position);
Toast.makeText(ShowActivity.this, String.valueOf(aStudent.getstudentdID()), 2000).show();
/*Intent myIntent = new Intent(ShowActivity.this,ViewStudentInfoActivity.class);
myIntent.putExtra("studentObj", aStudent);
//myIntent.putExtra("studentObj", aStudent.getstudentName());
startActivity(myIntent);*/
Bundle b = new Bundle();
b.putParcelable("studentObj", aStudent);
Intent myIntent2 = new Intent(ShowActivity.this,ViewStudentInfoActivity.class);
startActivity(myIntent2.putExtras(b));
}
});
而在ViewStudentInfoActivity的的onCreate()::
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_viewstudent_info);
getPassedVal();
}
private void getPassedVal()
{
Intent intent = new Intent();
/* if(intent!=null)
{
Student aaStudent = (Student) intent.getParcelableExtra("studentObj");
Log.d("vv", aaStudent.getstudentName());
} */
Bundle b = getIntent().getExtras();
if(b != null) {
Student aaStudent = (Student)(b.getParcelable("studentObj"));
String str = aaStudent.getstudentName().toString();
}
}
雖然吐司顯示結果,這意味着對象是好的。但不能從第二項活動中回收它?有點奇怪。難道我做錯了什麼?
你改變的關鍵? – Raghunandan
@拉康丹丹,謝謝。是的,我已編輯它,現在工作正常。但是,只有當我使用捆綁包時它仍然可以工作當我僅使用intent時,這不起作用,這是作爲代碼中的註釋。即使我試圖通過一個值,這也不工作! – shaon007
如果你想使用註釋代碼,你需要改變'意圖intent =新意圖();'意圖意圖= getIntent();' –