我嘗試了很多方法,但仍無法正常工作。 幾乎使用了stackoverflow的答案中的所有方法。但不工作。如何從Listview中獲取其他活動的項目詳細信息
MainActivity.java
mProductList = new ArrayList<>();
//add sample data to list
mProductList.add(new Product(1, "iPhone4", 200, "Apple1"));
mProductList.add(new Product(2, "iPhone5", 2100, "Apple2"));
mProductList.add(new Product(3, "iPhone6", 2020, "Apple3"));
mProductList.add(new Product(4, "iPhone7", 2400, "Apple4"));
mProductList.add(new Product(5, "iPhone8", 2050, "Apple5"));
mProductList.add(new Product(6, "iPhone9", 7200, "Apple6"));
//init adapter
adapter = new ProductListAdapter(getApplicationContext(), mProductList);
lvProduct.setAdapter(adapter);
lvProduct.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(), "Clicked product id =" + view.getTag(), Toast.LENGTH_SHORT).show();
Product item = (Product)lvProduct.getAdapter().getItem(position);
Log.d("abc",item.getName());
Intent launchActivity1= new Intent(MainActivity.this,Show.class);
launchActivity1.putExtra("item", item.getName());
startActivity(launchActivity1);
}
});
和Show.java
public class Show extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.show);
}
Intent launchActivity1 = getIntent();
String item = launchActivity1.getStringExtra("item"); // this is line 17
}
當我在一個項目點擊顯示在登錄用 「的getName()」 函數項目名稱。 但在同一時間的應用程序崩潰,並顯示在17行Show.java錯誤
請幫我解決這個代碼。
此錯誤顯示登錄
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.Serializable android.content.Intent.getSerializableExtra(java.lang.String)' on a null object reference
at com.example.sohaib.mydesign.Show.<init>(Show.java:17)
http://stackoverflow.com/questions/ 2736389 /如何通過一個對象從一個活動到另一個在Android – Pavya
如果你想修復onCreate方法的結束括號,如果你可以[編輯]你的問題要做到這一點,幷包括完整的logcat –
意圖爲空,因爲它不在方法中...... –