变量初始化程序是冗余的

时间:2018-05-31 23:03:07

标签: java android

我完全失去了正在发生的事情。我只是试图根据文档为我的微调器提供一个数组,我无法通过这4个警告:

变量spinnerY初始值设定项findViewById(R.id.spinnerYear)是多余的

以及适配器ArrayAdapter.createFromResource(this, R.array.year, android.R.layout.simple_spinner_item)

然后无法解析findViewById,最后,this是错误的第一个参数类型。

作为奖励问题,我的片段有3个微调器,所以我必须为每个微复制器复制这个吗?任何有关这些的帮助非常非常感谢。

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

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

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

}

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

}

1 个答案:

答案 0 :(得分:0)

从您充气的视图中查找微调器。 this将表示Fragment个实例,但您需要提供Activity个背景信息,因此请使用getContext()获取Activity个背景信息。

使用此代码

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

Spinner spinnerY = rootView.findViewById(R.id.spinnerYear);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(getContext(), R.array.year, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerY.setAdapter(adapter);
return rootView;
}

 @Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

}

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

}