Aller au contenu

listeview et contextmenu (avec position à récupérer)


blubsy

Recommended Posts

Bonsoir,

je début sur android et je suis un peu bloqué alors je recherche un peu d'aide.

J'ai une listeview avec des données et je voudrais lorsqu'on clique sur une donné que contextemenu s'ouvre (modif, supp ou annuler).

J'ai reussi à le mettre en place mais voilà lorsque je veux géré la donnée je n'arrive pas à récupéré son id.

Avec un onItemClick j'arrive à le faire :

public void onItemClick(AdapterView parent, View v, int position, long id)

Mais avec un onCreateContextMenu je n'arrive pas à faire passé une donnée ou à déterminé la position cliqué dans la listview.

Alors si quelqu'un pouvait l'aiguillé cela m'aiderais beaucoup.

Merci par avance pour votre aide.

blubsy

Lien vers le commentaire
Partager sur d’autres sites

  • 1 year later...

J'ai exactement le problème. je voudrai mettre un contextMenu différent pour chaque élément dans ma listView mais je n'arrive pas à récupérer la position.

Voici mon code:

public class TextView extends Activity {

private ListView maListViewPerso;

   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);


       maListViewPerso = (ListView) findViewById(R.id.listviewperso);

       ArrayList<HashMap<String, String>> listItem = new ArrayList<HashMap<String, String>>();

       HashMap<String, String> map;
       map = new HashMap<String, String>();
       map.put("titre", "Admin");
       map.put("description", "Management identification");
       map.put("img", String.valueOf(R.drawable.admin));
       map.put("symbol", String.valueOf(R.drawable.fleche));
       listItem.add(map);

       map = new HashMap<String, String>();
       map.put("titre", "Employee");
       map.put("description", "Management Employees");
       map.put("img", String.valueOf(R.drawable.employee));
       map.put("symbol", String.valueOf(R.drawable.fleche));
       listItem.add(map);

       map = new HashMap<String, String>();
       map.put("titre", "Expense Line");
       map.put("description", "Expense description");
       map.put("img", String.valueOf(R.drawable.line));
       map.put("symbol", String.valueOf(R.drawable.fleche));
       listItem.add(map);

       map = new HashMap<String, String>();
       map.put("titre", "Expense Report");
       map.put("description", "Report of all expenses");
       map.put("img", String.valueOf(R.drawable.expensereport));
       map.put("symbol", String.valueOf(R.drawable.fleche));
       listItem.add(map);

       map = new HashMap<String, String>();
       map.put("titre", "Project");
       map.put("description", "Management projects");
       map.put("img", String.valueOf(R.drawable.project));
       map.put("symbol", String.valueOf(R.drawable.fleche));
       listItem.add(map);

       SimpleAdapter mSchedule = new SimpleAdapter (this.getBaseContext(), listItem, R.layout.displayitem,
              new String[] {"img", "titre", "description","symbol"}, new int[] {R.id.img, R.id.titre, R.id.description, R.id.symbol});
       maListViewPerso.setAdapter(mSchedule);  

    maListViewPerso.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() {
        public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {

       	 menu.setHeaderTitle("SubMenu");
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.layout.menu, menu);	 

        }
    });

   }

   public boolean onContextItemSelected(MenuItem item){

       switch (item.getItemId()) {
       case R.id.employee:
           Toast.makeText(TextView.this, "Delete", Toast.LENGTH_SHORT).show();
           return true;
          case R.id.create01:
              Toast.makeText(TextView.this, "Create", Toast.LENGTH_SHORT).show();
              //setContentView(R.layout.addemployee);
              return true;
          case R.id.delete01:
              Toast.makeText(TextView.this, "Delete", Toast.LENGTH_SHORT).show();
              return true;
          case R.id.edit01:
              Toast.makeText(TextView.this, "Edit", Toast.LENGTH_SHORT).show();
              return true;
          case R.id.list01:
              Toast.makeText(TextView.this, "List", Toast.LENGTH_SHORT).show();
              return true;
          case R.id.project:
              Toast.makeText(TextView.this, "Delete", Toast.LENGTH_SHORT).show();
              return true;
          case R.id.create02:
              Toast.makeText(TextView.this, "Create", Toast.LENGTH_SHORT).show();
              //setContentView(R.layout.addemployee);
              return true;
          case R.id.delete02:
              Toast.makeText(TextView.this, "Delete", Toast.LENGTH_SHORT).show();
              return true;
          case R.id.edit02:
              Toast.makeText(TextView.this, "Edit", Toast.LENGTH_SHORT).show();
              return true;
          case R.id.list02:
              Toast.makeText(TextView.this, "List", Toast.LENGTH_SHORT).show();
              return true;
          case R.id.joinproject02:
              Toast.makeText(TextView.this, "List", Toast.LENGTH_SHORT).show();
              return true;
          case R.id.removeproject02:
              Toast.makeText(TextView.this, "List", Toast.LENGTH_SHORT).show();
              return true;
       }
       return (super.onOptionsItemSelected(item));}


}

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...