Immer das ausgewählte Element in der Listen-Ansicht über Kontextmenü

Kann nicht herausfinden, was ist Los mit meinem code:

registerForContextMenu(lv_myhitshotlists);
    AdapterContextMenuInfo menuinfo = null;

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        /*menu.setHeaderTitle("Item Operations");
        menu.add(0, v.getId(), 0, "Edit Film");
        menu.add(0, v.getId(), 0, "Delete Film");*/

        MenuInflater inflater = getMenuInflater();  
        inflater.inflate(R.menu.context_myfilm_list,menu);
        menuinfo = (AdapterContextMenuInfo) menuInfo;
        menu.setHeaderTitle("Options");
    }

    @Override
    public boolean onContextItemSelected(MenuItem item) {
    try{
        menuinfo = (AdapterContextMenuInfo) item.getMenuInfo();
        AdapterView.AdapterContextMenuInfo info= (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
        Long ids = madapter.getItemId(info.position);//what item was selected is ListView
         i = ids.intValue();

        switch (item.getItemId()) { 

        case R.id.menu_edit_myfilm:

            intHitshotEdit = new Intent(MyHitshotListActivity.this,MyHitshotInfoEditActivity.class);
            intHitshotEdit.putExtra("video_id", myList.get(i).getid());
            intHitshotEdit.putExtra("video_title", myList.get(i).getTitle());
            Toast.makeText(getApplicationContext(),myList.get(i).getTitle(), Toast.LENGTH_SHORT).show();
            //intVideodetails.putExtra("video_desc", myList.get(i).get);
            startActivity(intHitshotEdit);
            overridePendingTransition(R.anim.slideinfromright,R.anim.slideouttoleft);
            //intVideoUpload.putExtra("title",""+info.);

            return true;

        case R.id.menu_delete_myfilm:

            return true;

        default:

        }
    }catch(Exception e)
    {
        e.printStackTrace();
    }
        return super.onContextItemSelected(item);
        }

Jedes mal Long ids ist die Rückgabe 0.Ich bin die Bindung von Daten zum listview in der onpostexecute () - Teil der asynctask wie diese:

 public void setAdapterToListview(ArrayList<MyHitshotListData> myList) {
              madapter=new MyHitshotListAdapter(context, myList);
              lv_myhitshotlists.setAdapter(madapter);
          }

MyHitshotListAdapter ist ein adapter Verlängerung der Basis-adapter-Klasse.Was ist falsch????Warum der Wert der ids ist immer null??Der Wert von position kommt.

  • aber warum machst du das? direkt index wie int index = info.position;
  • index des listview-Recht????
  • ya, und Sie erhalten Daten zu bestimmten index mit video_id=myList.get(index).getid();
  • Vielen Dank...funktioniert perfekt...Eigentlich zuvor habe ich getan viele Projekte, die mithilfe von Kontext-Menü auf und ich folgte ihm auf diese Weise nur.Aber in diesem Fall wurde ich geschlagen.Und die Art und Weise, die Sie gezeigt haben ist die einfachste von allen,nur das abrufen der position des Kontext-Element geklickt haben.Bitte diesen post als Antwort, damit kann ich akzeptieren deine Antwort.
InformationsquelleAutor kgandroid | 2014-05-09
Schreibe einen Kommentar