簡體   English   中英

如何在運行時更改微調器的字符串數組如何在if語句中使用微調器的選定項(Eclipse中的Android)

[英]how to change the string array of a spinner at runtimeHow to use the selected item of a spinner in an if statement (Android in eclipse)

嗨,我有一個微調器(spinner1),當用戶從中選擇一個項目時(例如:“ Canada”,我希望spinner2填充“ canada”的省份。我嘗試了以下操作,但沒有用。我嘗試做通過使用:

if (spinner1.getSelectedItem().toString().equals("Canada"))
{
    addItemsOnSpinner2();
}

public void addItemsOnSpinner2() {

  spinner2 = (Spinner) findViewById(R.id.spinner2);
    List list = new ArrayList();
    list.add("Item 1");
    list.add("Item 2");
    list.add("Item 3");
    list.add("Item 4");
    ArrayAdapter dataAdapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item, list);
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner2.setAdapter(dataAdapter);

}

由於某些原因,這些項目未添加到spinner2中。 請幫忙

這段代碼

    if (spinner1.getSelectedItem().toString().equals("Canada"))
    {
        addItemsOnSpinner2();
    }

由於該Activity位於您的onCreate()因此只會在首次創建該Activity時運行。 您需要將此代碼添加到您的onItemSelected()spinner1 因此,您首先需要為該spinner實現一個OnItemSelected listener spinner

spinner1.setOnItemSelected(new OnItemSelected()
{
    @Override
    public void onItemSelected(AdapterView<?> parent, View v, int position, 
                                    long id) 
    {
         TextView tv = (TextView)v;   // cast the View to a TextView
         if ("Canada".equals(tv.getText().toString())
         {
            addItemsOnSpinner2();   
         }
    }

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

    }
});

這樣的事情應該起作用。 雖然,使用position而不是獲取文本可能會更安全。

OnItemSelected文檔

暫無
暫無

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

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