2017-06-21 6 views
1

Ich benutze eine Liste und ich möchte einen anderen AlertDialog für jedes Listenelement anzeigen, und eine andere Nachricht, wenn in diesem AlertDialog auf "Ja" oder "Nein" geklickt wird.Pass-Position zu Onclick

list.setOnItemClickListener(new AdapterView.OnItemClickListener(){ 
     @Override 
     public void onItemClick(AdapterView<?> parent, View v, int position, long id){ 
      dialogBox.setMessage(dialogBoxMessage[position]); 
      dialogBox.setNegativeButton("No", new DialogInterface.OnClickListener(){ 
       @Override 
       public void onClick(DialogInterface dialog, int which){ 
        Toast.makeText(getApplicationContext() , resultOfNoClick[position] , Toast.LENGTH_SHORT); 
       } 

      }); 
     } 
    }); 

Die „resultOfNoClick“ ist ein Array von Strings, die jeden String, der für ein „Nein“ klicken in einem bestimmten Punkt der Listview gezeigt werden muss, enthält. Also, gibt es eine Möglichkeit, die Position (die von "onItemClick" empfangene Variable) als Parameter an die obige "onClick" -Funktion zu übergeben?

Antwort

0

Machen Sie es ein letzten Variable:

list.setOnItemClickListener(new AdapterView.OnItemClickListener(){ 
      @Override 
      public void onItemClick(AdapterView<?> parent, View v, final int position, long id){ 
       dialogBox.setMessage(dialogBoxMessage[position]); 
       dialogBox.setNegativeButton("No", new DialogInterface.OnClickListener(){ 
        @Override 
        public void onClick(DialogInterface dialog, int which){ 
         Toast.makeText(getApplicationContext() , resultOfNoClick[position] , Toast.LENGTH_SHORT); 
        } 

       }); 
      } 
     });