【问题标题】:filling two spinners based on selection of the first根据第一个选择填充两个微调器
【发布时间】:2015-11-25 20:03:51
【问题描述】:

我正在尝试根据第一个微调器的选择来填充两个微调器,因此当我在第一个微调器中选择一个选项时,第二个微调器将填充适当的字符串数组。我是 android 的新手,我找不到错误,我在 if 循环内的 createFromResource 上收到错误。这是我的代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

Spinner spinner = (Spinner) findViewById(R.id.spinner);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            this, R.array.locations, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);

    Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);
    adapter = ArrayAdapter.createFromResource(
            this, R.array.locations, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner2.setAdapter(adapter);

    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            if(position==5) {
                Spinner spinner2 = (Spinner) findViewById(R.id.spinner);
                ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
                        R.array.startlocations, android.R.layout.simple_spinner_item);
                adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                spinner2.setAdapter(adapter);
            }
            else{
                Spinner spinner2 = (Spinner) findViewById(R.id.spinner);
                ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
                        R.array.destinations, android.R.layout.simple_spinner_item);
                adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                spinner2.setAdapter(adapter);
            }


            Toast.makeText(getBaseContext(), parent.getItemAtPosition(position) + " is selected", Toast.LENGTH_LONG).show();

        }

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

        }
    });

【问题讨论】:

    标签: android arrays


    【解决方案1】:
    ArrayAdapter.createFromResource(this,
                        R.array.destinations, android.R.layout.simple_spinner_item);
    

    我认为这是你的问题 尝试替换为

    ArrayAdapter.createFromResource(ActivityClassName.this,
                        R.array.destinations, android.R.layout.simple_spinner_item);
    

    其中“ActivityClassName”是您的活动名称

    【讨论】:

    • 谢谢你似乎成功了!!!如此简单,但我找不到它。再次感谢。
    • 为了将来参考上下文变量是一个活动或一个应用程序所以永远不要在内部类中使用“this”,因为它引用了内部类本身,这会让你发疯
    猜你喜欢
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-07
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多