2017-12-06 5 views
0

Hier ist, was ich versuche, hart codierten Punkt. Es erlaubt mir nicht, auf den Iterator innerhalb der onClick-Funktion zuzugreifen, wenn ich ihn in einer Schleife halte. Ist es möglich, dies dynamisch zu tun?Kann ich OnClick-Routinen für X-Anzahl von Objekten in Android dynamisch erstellen

cardBtns[0].setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

     } 
    }); 
    cardBtns[1].setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

     } 
    }); 
    cardBtns[2].setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

     } 
    }); 
    cardBtns[3].setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

     } 
    }); 
    cardBtns[4].setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

     } 
    }); 
+0

Bitte verwenden Sie einen 'RecyclerView'. – Kiya

Antwort

0

Um innerhalb einer Schnittstelle eine Variable mit dem final Schlüsselwort deklariert werden muss, verwendet werden. Der Iterator kann jedoch nicht endgültig sein, da sich sein Wert ändern muss, sodass Sie eine zweite Variable verwenden müssen.

for (int i = 0; i < 4; i++) { 
    final int j = i; 
    cardBtns[i].setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      view.setText("Button " + String.valueOf(j)); 
     } 
    }); 
} 
Verwandte Themen