2012-02-02 44 views
0

我最近發佈了一個問題,關於如何在程序執行期間更改微調器的值,並被告知更改用於生成適配器的數組,並調用notifyDataSetChanged( );spinners運行時(android)的內容,嘗試和失敗

我試過,但我的微調沒有得到更新,即使我的數組是。我附上下面的代碼

public void onCreate(Bundle savedInstanceState) 
    { 
    res=getResources(); 
    Boolean a; 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

// First spinner whose value determines the value of the second spinner   
    spinner = (Spinner) findViewById(R.id.spinner1); 
// ArrayAdaptor of first spinner 
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this       R.array.planets_array, android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner.setAdapter(adapter); 
    spinner2 = (Spinner) findViewById(R.id.spinner2); 
    spinner2.setVisibility(4);// spinner 2 is not visible initially 
// ArrayAdaptor of first spinner   
    adapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, spinner_drop); 
    adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

    spinner2.setAdapter(adapter2); 

    Context context = getApplicationContext(); 
    spinner.setOnItemSelectedListener(new MyOnItemSelectedListener()); 
    } 
public class MyOnItemSelectedListener implements OnItemSelectedListener 
{ 

    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) 
    { 
     if(pos!=0) 
     { 

    //copying string array of second spinner from strings.xml to the current string array 
     spinner_drop=res.getStringArray(R.array.activities_array2); 
     Toast.makeText(parent.getContext(), "The planet is " +spinner_drop[0] , Toast.LENGTH_SHORT).show(); //this toast shows up 
     adapter2.notifyDataSetChanged(); 
     spinner2.refreshDrawableState(); 
     spinner2.setVisibility(0);//this command works and the spinner is visible, but it is empty 
     } 
    } 

    public void onNothingSelected(AdapterView parent) 
    { 
     // Do nothing. 
    } 


} 

任何想法我做錯了任何想法將有所幫助。

PS:我曾嘗試拆卸整個無形的,有形的東西,那並不利於

在此先感謝

回答

0

修改您的onItemSelected方法如下,請注意新增加我在下面添加。

public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { 
    if (pos!=0) { 

    //copying string array of second spinner from strings.xml to the current 
    //string array 
    spinner_drop=res.getStringArray(R.array.activities_array2); 
    Toast.makeText(parent.getContext(), "The planet is " +spinner_drop[0], 
        Toast.LENGTH_SHORT).show(); //this toast shows up 
    adapter2.notifyDataSetChanged(); 
    spinner2.setAdapter(adapter2); // <--- New Addition 
    // spinner2.refreshDrawableState(); 
    spinner2.setVisibility(0); //this command works and the spinner is visible, 
           //but it is empty 
    } 
} 
相關問題