Android開發 Intent傳遞參數,獲取數據爲null

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日誌截圖
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章