如何使用导航抽屉中的 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
,则您必须通过 activity
或 application
。在这种情况下,我认为 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()
调用
我将 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
,则您必须通过 activity
或 application
。在这种情况下,我认为 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()
调用