簡體   English   中英

Android:從微調器中獲取選定項的值時,對象引用為空

[英]Android: null object reference when getting selected item value from spinner

我有一個微調器,我想在其中找到所選項目。 這是我目前正在運行的:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    spinner = (Spinner) findViewById(R.id.spinner);
    adapter = ArrayAdapter.createFromResource(this, R.array.teams, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);
    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
            teamText = parent.getItemAtPosition(pos).toString();
        }

        @Override
        public void onNothingSelected(AdapterView<?> adapterView) {

        }
    });
}

但是由於某種原因,應用程序崩潰了,並說微調框為空:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.brandon.checkpoints/com.example.jit.checkpoints.MapsActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)' on a null object reference
....
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)' on a null object reference

任何想法為什么會發生這種情況? 我知道微調框為null,但是我想弄清楚的是為什么它為null。 可能是因為微調框處於此活動之前的其他活動嗎? 我想做的是:

1)用戶在活動1中從微調器中選擇路線

2)用戶單擊下一步,在下一頁(活動)上,將從微調器中選擇的值放入變量中。

3)然后使用變量來確定用戶獲得的路線(例如:如果用戶從微調器中選擇了1,則用戶獲得了路線1,如果用戶選擇了2,則獲得了路線2,依此類推)

您需要將數據從一個活動傳遞到另一個活動。 請參閱如何在Android應用程序的“活動”之間傳遞數據?

確保使用正確的布局XML ,其中包含ID為spinner Spinner小部件。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.your_layout_that_contains_spinner);
    spinner = (Spinner) findViewById(R.id.spinner);

    .............
    ...................... 
}

我試圖弄清楚為什么它為空。 可能是因為微調框處於此活動之前的其他活動嗎?

是的,這很可能是問題所在。 findViewById()將僅搜索當前活動的視圖層次結構。 您不能使用它來獲取其他活動中的視圖。 而是必須在Intent中的活動之間傳遞數據。 有關如何執行此操作的詳細信息,請參見啟動另一個活動

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM