pub

samedi 20 décembre 2014

Tsindry maharitra mampiseho Context Menu

Mikasika indrindra ny tsindry maharitra eo amin'ny singa iray ao amin'ny "ListView" no resahina eto. Matetika ny ahy dia misy zavatra maromaro ao anatin'ny singa iray ao amin'ny ListView.
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;
    HashMap 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;
}
Amin'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)

Aucun commentaire:

Enregistrer un commentaire