android開發 Activity通過Intent傳遞參數,獲取失敗的原因
啓動一個有返回值的activity (MapActivity)
Intent intent = new Intent(UpdateDeveicesActivity.this, MapActivity.class);
intent.putExtra("latitude", sensorModel.getLatitutde());
intent.putExtra("longitude", sensorModel.getLongtitude());
startActivityForResult(intent, Contacts.INDEX_ONE);
MapActivity處理接收的返回值
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
ButterKnife.bind(this);
String lat, lon;
intent = this.getIntent();
lat = intent.getStringExtra("latitude");
lon = intent.getStringExtra("longitude");
Log.e("得到前面傳遞的數據", lat);
Log.e("得到前面傳遞的數據", lon);
}
運行代碼,發現程序崩潰😫了,提示lat參數爲null,導致程序崩潰,
後面突然發現,我傳遞的一個Double類型的參數,獲取的時候是一個String,所以導致activity接收不到數據
後來更改了lat,lon的類型,發現就能夠正常接收了,特此編寫,以防下次再犯
更改成功之後的代碼
//更改類型從String更改爲Double
Double lat, lon;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
ButterKnife.bind(this);
intent = this.getIntent();
lat = intent.getDoubleExtra("latitude", 0);
lon = intent.getDoubleExtra("longitude", 0);
Log.e("得到前面傳遞的數據", "" + lat);
Log.e("得到前面傳遞的數據", "" + lon);
}
LOG日誌截圖