Android:spinner在Activity中工作但不在Fragment中工作

The*_*mad 2 android fragment spinner

所以我能够Spinner在一个单独的工作Activity,但当我将代码转移到Fragment时,它显然不起作用.

我在这两行中遇到错误:

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.category_array, android.R.layout.simple_spinner_item);
ArrayAdapter<String> adapterItem = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, suggestedItems);
Run Code Online (Sandbox Code Playgroud)

我知道this需要改变背景.我已经尝试过使用getActivity(),但是效果不好.

需要一些见解!谢谢!

public class NominateFragment extends Fragment {

@Override  
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {  

    View view = inflater.inflate(R.layout.fragment_nominate_page, container, false);

    //SPINNER
    Spinner spinner = (Spinner)getView().findViewById(R.id.category);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.category_array, android.R.layout.simple_spinner_item); // Create an ArrayAdapter using the string array and a default spinner layout
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // Specify the layout to use when the list of choices appears
    spinner.setAdapter(adapter);    // Apply the adapter to the spinner

    //AUTOCOMPLETE
    AutoCompleteTextView nominateItem = (AutoCompleteTextView)getView().findViewById(R.id.autocomplete_nominate_item); // Get a reference to the AutoCompleteTextView in the layout
    String[] suggestedItems = getResources().getStringArray(R.array.suggested_items_array); // Get the string array
    ArrayAdapter<String> adapterItem = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, suggestedItems);     // Create the adapter and set it to the AutoCompleteTextView 
    nominateItem.setAdapter(adapterItem);

    return view;
}

}
Run Code Online (Sandbox Code Playgroud)

Moh*_*san 7

重复这一行:

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.category_array, android.R.layout.simple_spinner_item);
Run Code Online (Sandbox Code Playgroud)

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(getActivity(), R.array.category_array, android.R.layout.simple_spinner_item);
Run Code Online (Sandbox Code Playgroud)

这一行:

Spinner spinner = (Spinner)getView().findViewById(R.id.category);
Run Code Online (Sandbox Code Playgroud)

有:

Spinner spinner = (Spinner)view.findViewById(R.id.category);
Run Code Online (Sandbox Code Playgroud)

和:

AutoCompleteTextView nominateItem = (AutoCompleteTextView)getView().findViewById(R.id.autocomplete_nominate_item); // Get a reference to the AutoCompleteTextView in the layout
Run Code Online (Sandbox Code Playgroud)

有:

AutoCompleteTextView nominateItem = (AutoCompleteTextView)view.findViewById(R.id.autocomplete_nominate_item); // Get a reference to the AutoCompleteTextView in the layout
Run Code Online (Sandbox Code Playgroud)

  • 欢迎你,无论如何,getView()不起作用,因为你仍然创建它,在现有的这个方法之后,getView()应该工作 (2认同)