-1

J'utilise strings.xml pour mes articles quand je l'utilise en activité simple son fonctionne correctement mais quand je veux l'utiliser dans le tiroir de navigation Activité il dosent travail. l'erreur estComment ajouter des éléments à spinner avec ArrayAdapter dans le tiroir de navigation Activité

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.

Ceci est mon strings.xml

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

j'ai problème dans cette ligne:

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 
+0

utilisation 'getActivity()' au lieu de cela . – Ibrahim

Répondre

1

Si un context est nécessaire, alors vous devrez passer le activity ou application. Dans ce contexte, je pense que le activity sera assez

modifier cette ligne:

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

pour cette

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

Notez le getActivity() appel

+0

Merci beaucoup ... –