2017-01-08 2 views
0

Ich habe viele ähnliche Fragen durchforstet, aber ich bin nicht in der Lage, die Antwort zu finden, die ich suche. Ich bin so ziemlich Autodidakt, also entschuldige ich mich für die Frage. Im Grunde versuche ich auf die String-ID in meinem Array zuzugreifen und wandle sie in eine lesbare Zeichenfolge um, damit ich sie zu Google Maps senden kann, damit der Benutzer dort navigieren kann. Dies ist das nächste, das ich bekommen habe.Wie konvertiert man eine int String-ID aus einer ArrayList in eine verwendbare Zeichenfolge?

import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.AdapterView; 
import android.widget.ListView; 

import java.util.ArrayList; 

public class FoodFragment extends Fragment { 

    public FoodFragment() { 

    } 


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

     final ArrayList<Location> places = new ArrayList<>(); 
     places.add(new Location(R.string.food1, R.string.desc1, R.drawable.tapass)); 
     places.add(new Location(R.string.food2, R.string.desc2, R.drawable.baguette)); 
     places.add(new Location(R.string.food3, R.string.desc3, R.drawable.sushi)); 
     places.add(new Location(R.string.food4, R.string.desc4, R.drawable.burger)); 
     places.add(new Location(R.string.food5, R.string.desc5, R.drawable.meat)); 
     places.add(new Location(R.string.food6, R.string.desc6, R.drawable.pizza)); 

     final Location here = places.get(0); 
     final int address = here.getName(); 

     MyAdapter adapter = new MyAdapter(getActivity(), places); 

     final ListView listView = (ListView) rootView.findViewById(R.id.list); 

     listView.setAdapter(adapter); 

     listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) { 

       Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
         Uri.parse("google.navigation:q=" + address)); 
       startActivity(intent); 
      } 
     }); 
     return rootView; 
    } 
} 

getName stammt aus meiner Standortklasse. Ich stelle fest, dass es ein int zurückgibt (so dass ich die String-ID aus string.xml in das Array setzen kann), aber wie bekomme ich es, um den tatsächlichen String-Wert zurückzugeben?

public class Location { 

    private int mName; 
    private int mDescription; 
    private int mImage; 


    public Location (int name, int description, int image){ 
     mName = name; 
     mDescription = description; 
     mImage = image; 
    } 

    public int getName(){ 
     return mName; 
    } 

    public int getDescription(){ 
     return mDescription; 
    } 

    public int getImage(){ 
     return mImage; 
    } 
} 

Wieder entschuldige ich mich für noob Frage und jede Hilfe wird sehr geschätzt.

Antwort

0

Sie sollten Sie Standort verändern Klasse wie folgt aussieht

public class Location { 

    private int mName; 
    private int mDescription; 
    private int mImage; 
    private Context mContext; 


    public Location (int name, int description, int image, Context context){ 
     mName = name; 
     mDescription = description; 
     mImage = image; 
     mContext = context; 
    } 

    public String getName() { 
     return mContext.getString(mName) 
    } 

    public int getDescription(){ 
     return mDescription; 
    } 

    public int getImage(){ 
     return mImage; 
    } 
} 

dann können Sie Location Beispiel wie dieses

places.add(new Location(R.string.food1, R.string.desc1, R.drawable.tapass, getActivity())); 
0

Hier address ist Ressource id von string.xml Sie Wert von address Zugang erstellen ID mit

String value = getString(address); 
+0

Dies ist genau das, was ich gesucht habe, vielen Dank. Ich bin zu neu für +1, aber ich werde zurückkommen, wenn ich genug Wiederholungen habe. –

Verwandte Themen