Ohatra ny vokatry ny fitadiavana ao amin'ny Baiboly dia mampiasa ListView fa ao anatin'ny "row" anakiray dia misy views telo (a_id, a_titre, a_texte)
Mba hahafahana mandray ny zavatra ao anatin'io "row" io rehefa manao "tsindry maharitra", ohatra hoe tiana hotehirizina ilay andininy, dia tsy afaka tonga dia mampiasa position (izay manome ny position-n'ny row ao anatin'ilay ListView izay tsy mitovy akory amin'ny a_id). Dia naleoko maka ny objet avy amin'ny getItemAtPosition
Toa izao no natao ary:
@Override protected void onCreate(Bundle savedInstanceState) { (...) lv = (ListView) findViewById(R.id.lstResult); registerForContextMenu(lv); (...) } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo; int position = info.position; HashMapAmin'izao dia manana "object" mitahiry ny votoatin'ilay "row" ka azoko alaina tsirairay ny singa ao anatiny (ohatra hoe tehirizina any amin'ny base de données)row = (HashMap)lv.getItemAtPosition(info.position); menu.setHeaderTitle(row.get("a_title")); menu.add(Menu.NONE, 1, 0, "Tehirizina"); } @Override public boolean onContextItemSelected(MenuItem item) { // Get extra info about list item that was long-pressed AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); // Perform action according to selected item from context menu HashMap row = (HashMap)lv.getItemAtPosition(menuInfo.position); String a_id = row.get("a_id"); String a_title = row.get("a_title"); String a_text = row.get("a_text"); switch (item.getItemId()) { case 1: //tehirzina // Show message fdb = new FavoriteDb(this); if(fdb.isFavorite(a_id) == 0) { Toast.makeText(getApplicationContext(), "Voatahiry ny " + a_title, Toast.LENGTH_LONG).show(); } else { Toast.makeText(getApplicationContext(), "Efa ao anaty tahiry ny " + a_title, Toast.LENGTH_LONG).show(); } break; } return true; }
Aucun commentaire:
Enregistrer un commentaire