2012-02-02 41 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 
    } 
} 
相关问题