0

我有一个带有毫克,克,微克,公斤的微调器。如果我选择 mg,我希望第二个微调器只更新 mg 和 g 项目。但是当使用 if 逻辑时,我得到“类型 ArrayAdapter 中的方法 createFromResource(Context, int, int) 不适用于参数”错误。

公共类 MyOnItemSelectedListener 实现 OnItemSelectedListener{

    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id){
    String str = parent.getItemAtPosition(pos).toString();

    final TextView result = (TextView) findViewById(R.id.textView5);

    if (str.equals("mg")){
        Spinner spinner1 = (Spinner) findViewById(R.id.spinner2);

        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.units, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner1.setAdapter(adapter);
        //result.setText("testing");
    }
    else {
        result.setText("micrograms");
    }

    }

    @Override
    public void onNothingSelected(AdapterView parent){}
}
4

1 回答 1

1

您的问题出在这一行:

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.units, android.R.layout.simple_spinner_item);

这里的第一个参数需要一个上下文。因为你是从一个监听器调用它,它是它自己的类,this是指监听器,而不是你的活动。您需要通过侦听器类的构造函数传递对活动的引用,并替换this为对该活动上下文的引用。

于 2013-05-28T23:01:22.553 回答