如何使用导航抽屉中的 ArrayAdapter 将项目添加到微调器 Activity

How can add items to spinner with ArrayAdapter in Navigation drawer Activity

我将 strings.xml 用于我的项目,当我在简单的 Activity 中使用它时它工作正常,但是当我想在导航抽屉中使用它时 Activity 它不起作用。错误是

Error:(98, 51) error: incompatible types: ContactUsFragment cannot be converted to Context Error:Execution failed for task ':app:compileDebugJavaWithJavac'. Compilation failed; see the compiler error output for details.

这是我的Strings.xml

<resources>
    <string-array name="country_names">
        <item> select </item>
        <item>germany</item>
        <item>italy</item>
        <item>metro</item>
    </string-array>
</resources>

我在这行有问题:

adapter = ArrayAdapter.createFromResource(this, R.array.country_names, android.R.layout.simple_spinner_item);

public class ContactUsFragment extends Fragment implements OnMapReadyCallback  {
    GoogleMap map;
    public ContactUsFragment() {
        // Required empty public constructor
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View v= inflater.inflate( fragment_contact_us, container, false);
        return v;

    } //end of onCreateView

    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated( view, savedInstanceState );


        spinner = (Spinner) getView().findViewById( R.id.spinner );
        adapter = ArrayAdapter.createFromResource(this, R.array.country_names, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
        spinner.setAdapter(adapter);

        SupportMapFragment mapFragment = (SupportMapFragment)
                getChildFragmentManager().findFragmentById( R.id.map1 );
        mapFragment.getMapAsync( this );

    } // end of onViewCreated

    @Override
    public  void    onMapReady(GoogleMap googleMap){
        map=googleMap;
        LatLng pp=new LatLng(12,25);
        MarkerOptions option=new MarkerOptions();
        option.position(pp).title("hi ");
        map.addMarker(option);
        map.moveCamera(CameraUpdateFactory.newLatLng(pp));

    }
}//end of class

如果需要 context,则您必须通过 activityapplication。在这种情况下,我认为 activity 就足够了

更改此行:

adapter = ArrayAdapter.createFromResource(this, R.array.country_names, android.R.layout.simple_spinner_item);

为此

adapter = ArrayAdapter.createFromResource(getActivity(), R.array.country_names, android.R.layout.simple_spinner_item);

注意 getActivity() 调用