无法解析构造函数ArrayAdapter(android.content.Context,int,java.lang.String [],java.lang.String,java.lang.String)

时间:2016-03-17 10:45:15

标签: android android-arrayadapter android-spinner

您好我使用ArrayAdapter在微调器中显示默认文本而我不理解错误

  

无法解析构造函数ArrayAdapter(android.content.Context,int,java.lang.String [],java.lang.String,java.lang.String)。

任何人都可以告诉我这个,请帮助我,我不太了解java编码。

 public class UneCon extends Fragment {

    private Spinner fromDetails, toDetails;
    private EditText fromInput, toInput;


    public static UneCon setArguments(int position) {
        UniqueConverter uniqueConverter = new UniqueConverter();
        Bundle args = new Bundle();
        args.putInt("position", position);
        uniqueConverter.setArguments(args);
        return uniqueConverter;
    }

 @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_uniquelayout, container, false);


        onInitVies(view);
        int position = getArguments().getInt("position");

        switch (position) {
            case 0:
                setAdapter(getResources().getStringArray(R.array.temperatureform), "Celsius", "Fahrenheit");

                break;
            case 1:
                setAdapter(getResources().getStringArray(R.array.weightform), "Kilograms", "Grams");

                break;

 return view;

    }


    private void setAdapter(String[] spinnerItems, String fromDefaultText, String toDefaultText) {

        fromDetails.setAdapter(new ArrayAdapter<String>(getContext(), R.layout.spinner_item, spinnerItems, fromDefaultText, toDefaultText));//here it getting error//
    }

    private void onInitVies(View view) {
        fromDetails = (Spinner) view.findViewById(R.id.fromSpinner);
        toDetails = (Spinner) view.findViewById(R.id.toSpinner);

        fromInput = (EditText) view.findViewById(R.id.fromInput);
        toInput = (EditText) view.findViewById(R.id.toInput);
    }
}

3 个答案:

答案 0 :(得分:0)

不确定要对fromDefaultTexttoDefaultText做什么。您不需要通过它(除非您具体使用它并使用自定义适配器)。现在

更改

fromDetails.setAdapter(new ArrayAdapter<String>(getContext(), R.layout.spinner_item, spinnerItems, fromDefaultText, toDefaultText));

fromDetails.setAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_dropdown_item, spinnerItems));

答案 1 :(得分:0)

你见过Doc吗?

ArrayAdapter类中有6种类型的构造函数。 并且有2个构造函数的最大参数为4.并且您当前传递了5个参数..

具有最大参数数量的2个构造函数为:

ArrayAdapter(Context context, int resource, int textViewResourceId, List<T> objects)

ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects)

我们不确定您目前正在尝试做什么。我建议你初始化ArrayAdapter将当前的初始化转换为上面的初始化..

答案 2 :(得分:-1)

array (size=1) 1 => array (size=4) 'data' => string '15' (length=2) 更改为getContext()

以下是android中的四种类型的数组适配器。

getActivity()

希望这会对你有所帮助。