2

几乎让它运行。 所以,我有我的静态PlaceholderFragment,看起来像这样:在片段中指定AutoCompleteTextView适配器

public static class PlaceholderFragment extends Fragment { 
    private static final String ARG_SECTION_NUMBER = "section_number"; 

    public PlaceholderFragment() { 

    } 

    public static PlaceholderFragment newInstance(int sectionNumber) { 
     PlaceholderFragment fragment = new PlaceholderFragment(); 
     Bundle args = new Bundle(); 
     args.putInt(ARG_SECTION_NUMBER, sectionNumber); 
     fragment.setArguments(args); 
     return fragment; 
    } 

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

     // Get a reference to the AutoCompleteTextView in the layout 
     AutoCompleteTextView textView = (AutoCompleteTextView) rootView.findViewById(R.id.customer); 
     String[] customers = getResources().getStringArray(R.array.al_customers); 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, customers); 
     textView.setAdapter(adapter); 

     return rootView; 
    } 
} 

所以我的问题是这样的一行:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, countries); 

我得到的错误如下:

Cannot resolve constructor 'ArraAdapter(com.g.h.MainActivity.PlaceholderFragment,int,java.lang.String[])' 

我确实尝试在“this”之前放置课程:

MainActivity.this 
在评论由NollyĴ给予210
+0

当您执行了'MainActivity.this'时发生了什么? –

+2

使用getActivity()取代这个 – Inducesmile

+0

getActivity取得了神奇的效果。真棒 – mogren3000

回答

1

答:

“使用getActivity()来代替这个”

而且,像变魔术一样。

1
AutoCompleteTextView autoCompleteTextView = (AutoCompleteTextView) view.findViewById(R.id.autocomplete_type_pres); 
autoCompleteTextView.setAdapter(new ArrayAdapter<String>(getActivity(),android.R.layout.simple_dropdown_item_1line, mylist));