如何在导航抽屉活动中使用ArrayAdapter向微调器添加项目

时间:2017-07-20 19:21:32

标签: android android-arrayadapter android-navigation-drawer

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

  

错误:(98,51)错误:不兼容的类型:ContactUsFragment不能   转换为上下文   错误:任务':app:compileDebugJavaWithJavac'的执行失败。   编译失败;有关详细信息,请参阅编译器错误输出。

这是我的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

1 个答案:

答案 0 :(得分:1)

如果需要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()来电