2014-03-24 27 views
0

所以,我見過很多例子,要求如何處理列表視圖上的滑動,但我想知道如何觸發和AlertDialog,同時按下該特定項目的列表視圖項目。所以,當我按住listview上的特定項目時,onTouch方法應該識別它是哪個項目。Listview按住並按onTouchListener

l.setOnTouchListener(new View.OnTouchListener() { 

      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       // TODO Auto-generated method stub 
       int action = event.getAction(); 
       AlertDialog.Builder alert = new AlertDialog.Builder(ctx); 
       alert.setTitle("Delete Friend?"); 
       alert.setPositiveButton("Delete", new DialogInterface.OnClickListener() { 

        @Override 
        public void onClick(DialogInterface d, int which) { 
         //onTouchListener should recognize which friend is being pressed on, 
         //similar to onItemClickListener 

        } 
       }); 

       alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 

        @Override 
        public void onClick(DialogInterface dialog, int which) { 

         //Do Nothing 
        } 
       }); 
       if(action == MotionEvent.ACTION_DOWN){ 
        alert.create().show(); 
       } 

       return false; 
      } 
     }); 

回答

1

您可以使用Long Click Listener。

例如;

listView.setOnItemLongClickListener(new AdapaterView.OnItemLongClickListener(){ 
     @Override 
     public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id){ 
     //Add alertDialog here 
     } 
    });