安卓:微调工作在活动,但不分段 [英] Android: spinner works in Activity but not Fragment

查看:101
本文介绍了安卓:微调工作在活动,但不分段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

于是我就能够做出微调工作在一个单一的活动,但是当我转到了code到A片段它显然没有奏效。

我得到一个错误在以下两行:

  ArrayAdapter<&CharSequence的GT;适配器= ArrayAdapter.createFromResource(这一点,R.array.category_array,android.R.layout.simple_spinner_item);
ArrayAdapter<串GT; adapterItem =新ArrayAdapter<串GT;(这一点,android.R.layout.simple_list_item_1,suggestedItems);

和我知道的情况下这个需要改变。我已经尝试过使用 getActivity(),但没有正常工作。

一些有识之士需要!谢谢!

 公共类NominateFragment扩展片段{@覆盖
公共查看onCreateView(LayoutInflater充气器,容器的ViewGroup,捆绑savedInstanceState){    查看查看= inflater.inflate(R.layout.fragment_nominate_page,集装箱,FALSE);    // SPINNER
    微调微调=(微调)getView()findViewById(R.id.category)。
    ArrayAdapter<&CharSequence的GT;适配器= ArrayAdapter.createFromResource(这一点,R.array.category_array,android.R.layout.simple_spinner_item); //使用字符串数组和默认微调布局的ArrayAdapter
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //指定布局使用出现的选项列表时,
    spinner.setAdapter(适配器); //应用适配器微调    // AUTOCOMPLETE
    AutoCompleteTextView nominateItem =(AutoCompleteTextView)getView()findViewById(R.id.autocomplete_nominate_item)。 //获取布局到AutoCompleteTextView参考
    的String [] = suggestedItems getResources()getStringArray(R.array.suggested_items_array)。 //获取字符串数组
    ArrayAdapter<串GT; adapterItem =新ArrayAdapter<串GT;(这一点,android.R.layout.simple_list_item_1,suggestedItems); //创建适配器,并将其设置为AutoCompleteTextView
    nominateItem.setAdapter(adapterItem);    返回视图。
}}


解决方案

replce这一行:

  ArrayAdapter<&CharSequence的GT;适配器= ArrayAdapter.createFromResource(这一点,R.array.category_array,android.R.layout.simple_spinner_item);

  ArrayAdapter<&CharSequence的GT;适配器= ArrayAdapter.createFromResource(getActivity(),R.array.category_array,android.R.layout.simple_spinner_item);


和这一行:

 微调微调=(微调)getView()findViewById(R.id.category)。

 微调微调=(微调)view.findViewById(R.id.category);


  AutoCompleteTextView nominateItem =(AutoCompleteTextView)getView()findViewById(R.id.autocomplete_nominate_item)。 //获取布局到AutoCompleteTextView参考

  AutoCompleteTextView nominateItem =(AutoCompleteTextView)view.findViewById(R.id.autocomplete_nominate_item); //获取布局到AutoCompleteTextView参考

So I was able to make a Spinner work in a single Activity, but when I transferred the code to a Fragment it obviously didn't work.

I am getting an error in these two lines:

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);

and I know that the context this needs to be changed. I already tried to use getActivity(), but that didn't work as well.

Some insight needed! Thank you!

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;
}

}

解决方案

replce this line:

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

with

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


and this line:

Spinner spinner = (Spinner)getView().findViewById(R.id.category);

with:

Spinner spinner = (Spinner)view.findViewById(R.id.category);


and:

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

with:

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

这篇关于安卓:微调工作在活动,但不分段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆