2012-04-06 4 views
0

Aide !!ListView avec detailview dans android

J'ai un adaptateur de liste avec une vue détaillée, le problème que j'ai est d'essayer de passer des valeurs d'un fichier xml à la deuxième vue. Je peux actuellement le faire mais seulement si je montre ces valeurs dans la première vue. Ce que j'essaie d'obtenir est sur la première vue avoir juste un titre et quand vous cliquez sur ce titre il vous amène à une vue de détail avec plus d'informations à ce sujet.

Voici le code que j'ai actuellement.

ListAdapter adapter = new SimpleAdapter(this, menuItems, 
      R.layout.list_item, 
      new String[] { KEY_USERADDRESS, KEY_DATEDUE}, new int[] { 
        R.id.name, R.id.cost }); 
    setListAdapter(adapter); 

    // selecting single ListView item 
    ListView lv = getListView(); 

    lv.setOnItemClickListener(new OnItemClickListener() { 

     //@Override 
     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 
      // getting values from selected ListItem 
     // String name = ((TextView) view.findViewById(R.id.name)).getText().toString(); 
      String cost = ((TextView)view.findViewById(R.id.cost)).getText().toString(); 
     // String description = ((TextView) view.findViewById(R.id.desciption)).getText().toString(); 

      // Starting new intent 
      Intent in = new Intent(getApplicationContext(), SingleMenuItemActivity.class); 
      //in.putExtra(KEY_USERADDRESS, name); 
      in.putExtra(KEY_DATEDUE, cost); 
      //in.putExtra(KEY_DESC, description); 
      startActivity(in); 

     } 
    }); 
} 

Comme vous pouvez le voir, j'ai un adaptateur de liste, je veux seulement montrer le contenu du KEY_USERADDRESS sur la première vue et quand ils cliquent sur le reste, il sera affiché. Si j'ajoute le reste des Textviews à l'adaptateur de liste, cela rend les textviews trop grands. Désolé si je suis un peu déroutant, je suis toujours une recrue quand il s'agit de développement android.

Toute aide sera appréciée !!

Répondre

1

En supposant que vos données sont stockées dans l'objet menuItems Carte, que diriez-vous quelque chose comme ça dans votre onItemClick():

public void onItemClick(AdapterView<?> parent, View view, 
      int position, long id) { 
    //Your code here.. 
    Map<String, String> myValueMap = menuItems.get(position); 

    // Starting new intent 
    Intent in = new Intent(getApplicationContext(), SingleMenuItemActivity.class); 
    in.putExtra(KEY_USERADDRESS, myValueMap.get(KEY_USERADDRESS)); 
    in.putExtra(KEY_DATEDUE, myValueMap.get(KEY_DATEDUE)); 
    in.putExtra(KEY_DESC, myValueMap.get(KEY_DESC)); 
    startActivity(in); 
} 

le paramètre de position dans le onItemClick peut être utilisé pour obtenir la carte sélectionnée de votre menuItems que vous avez utilisé le créer votre SimpleAdapter pour peupler le ListView

+0

Merci, cela a vraiment aidé beaucoup !!! Exactement ce dont j'avais besoin. – UndercoverGeek