构造函数无法在android中解析数组适配器

时间:2017-09-11 05:06:05

标签: java android spinner

我不知道我做了什么错误。但它在我的数组适配器代码上显示can not resolve constructor Arrayadapter。请帮我修复它。(我已经使用了getActivity(),因为我已经在我的片段部分编写了这个代码)并且它在它之后崩溃了。我试过了几乎所有的问题都在堆栈溢出中解决。(在投票之前建议我一些解决方案)

spinner = (Spinner) view.findViewById(R.id.spinner3);
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,getActivity(),android.R.layout.simple_spinner_item,def);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(dataAdapter);

here is my error log

2 个答案:

答案 0 :(得分:0)

您正在向您的适配器传递Context,因此只需传递一个上下文

  

如果你的微分器不是像这样改变你的适配器

Button button = (Button) findViewById(R.id.my_button);
button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            MainActivity.this.finish();
            //MainActivity.this.finishAndRemoveTask();
            Intent la = new Intent(MainActivity.this, Results.class);
            la.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
            la.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            la.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
            la.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
            startActivity(la);
        }
    });

答案 1 :(得分:0)

如果您使用fragment

,请尝试此操作

<强> 1。此代码旨在获取静态数组

    ArrayAdapter myAdapter = ArrayAdapter.createFromResource(
            getActivity(), R.array.my_array, android.R.layout.simple_spinner_item);

    myAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    mySpinner.setAdapter(myAdapter);

<强> 2。如果您要获取动态数组,则下面的示例代码将起作用。

在此示例中,我从db中获取了列表。您可以根据自己的要求进行更改。

    Spinner maritalSpinner = (Spinner) view.findViewById(R.id.marital_spinner);
    List<MaritalStatus> maritalStatusList = new ArrayList<>();
    List<String> maritalStatusArray = new ArrayList<>();
    maritalStatusList = dbConnection.getMaritalStatus(maritalStatusDao);
    maritalStatusArray.clear();
    maritalIdArray.clear();
    maritalStatusArray.add("~Select~");
    maritalIdArray.add(0l); // this is number '0' and alphabet 'l'(small 'L') not number '1'
    for (MaritalStatus marital : maritalStatusList) {
        String maritalStatus = marital.getMaritalStat();
        long maritalId = marital.getMaritalId();
        maritalStatusArray.add(maritalStatus);
        maritalIdArray.add(maritalId);
    }
    maritalAdapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_spinner_item, maritalStatusArray);
    maritalAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    maritalAdapter.notifyDataSetChanged();
    maritalSpinner.setAdapter(maritalAdapter);