2010-06-07 2 views
0

Je reçois un tableau d'objets d'un webservice qui doit être assigné à ArrayAdapter pour être listé dans un listView, j'obtiens le résultat dans @ 431d5410 dans ce format, Comment puis-je obtenir un format de chaîne?Comment puis-je obtenir un tableau d'objets dans un tableau de format de chaîne à affecter à l'affichage de liste dans Android?

 projects = projectService.SearchProjects("", 0, -1); 
    **Vector<ADSProject> ProjList = projects.getResults();** 
     setListAdapter(new ArrayAdapter(this,android.R.layout.simple_list_item_1,ProjList)); 
    ListView Projects = getListView(); 
    Projects.setOnItemClickListener(this); 

Répondre

2

Le ArrayAdapter tente de remplir votre listview avec l'objet ADSProject (d'où le @ 431d5410.) Vous devriez faire un ArrayAdapter personnalisé ou BaseAdapter et gérer la récupération de la valeur de chaîne à partir de votre ADSProject objet yourelf.

Il ressemblerait à quelque chose comme ça (Je ne sais pas si cela fonctionne avec cependant l'objet Vector, j'utiliser ArrayList):

public class MyArrayAdapter extends ArrayAdapter<ADSProject> { 

    private Context mContext; 
    private List<ADSProject> mProjects; 
    private int mLayoutResource; 
    private int mTextViewResourceId; 
    private TextView mTextView; 

    public MyArrayAdapter(Context context, int resource, 
     int textViewResourceId, List<ADSProject> objects) { 
    super(context, resource, textViewResourceId, objects); 

    mContext = context; 
    mLayoutResource = resource; 
    mTextViewResourceId = textViewResourceId; 
    mProjects = objects; 

    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 

    // Handle View Recycling 
    View view; 
    if(convertView == null) { 
     LayoutInflater inflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     view = inflater.inflate(mLayoutResource, null); 
    } else { 
     view = convertView; 
    } 

    // Get textview and set with string from ADSProject Object 
    mTextView = (TextView)view.findViewById(mTextViewResourceId); 
    mTextView.setText(mProjects.get(position).getStringValue()); 

    return view; 
    } 

} 
+0

Un vecteur est-une liste, en utilisant un vecteur ne devrait pas être problème. –

+0

setListAdapter (nouvel ArrayAdapter (this, android.R.layout.simple_list_item_1, ProjList)); Y at-il quelque chose ici qui peut prendre toute la liste en format de chaîne ou qui affiche directement les données? –

+0

Est-ce que ADSProject contient une variable String que vous voulez imprimer dans votre liste? Si c'est le cas, vous pouvez créer une nouvelle liste des seules chaînes en itérant à travers votre vecteur. – m6tt

Questions connexes