Ich habe eine Klasse namens BuyCoins, innerhalb dieser Klasse habe ich eine Methode addListenerOnSpinnerItemSelection()Rückruf-Funktion java
public void addListenerOnSpinnerItemSelection() {
spinner1 = (Spinner) findViewById(R.id.spinner1);
TextView t=(TextView) findViewById(R.id.conversion);
CustomOnItemSelectedListener c = new CustomOnItemSelectedListener(t);
spinner1.setOnItemSelectedListener(c);
//String stockCode=c.getStock();
//Log.d(TAG,"message");
}
Dadurch entsteht ein neues Objekt, das das Element erkennt (Produkt) auf dem Spinner ausgewählt. Ich möchte dies gerne wieder in die BuyClass geben. Ich habe versucht, dies mit den Zeilen zu tun, die auskommentiert sind, aber der Wert, den ich zurück erhalte, ist null.
public class CustomOnItemSelectedListener implements OnItemSelectedListener {
...
public String Stock;
...
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
String selected=parent.getItemAtPosition(pos).toString();
switch(selected) {
case "20 Coins":
Toast.makeText(parent.getContext(),
"OnItemSelectedListener : " + selected,
Toast.LENGTH_SHORT).show();
t.setText("$20");
this.setStock("20Coins");
break;
...
}
private void setStock(String s) {
Stock=s;
}
public String getStock() {
return Stock;
}
}
'der Wert I zurückerhalten ist ein null' - wenn Sie etwas zurück Ihre Methode senden möchten einen Rückgabetyp haben muss (Ihres ist nichtig, also nichts), einen Wert _into_ schreiben ein Objekt, das als Parameter übergeben wurde oder den Wert in ein Feld schreibt, das nach dem Methodenaufruf gelesen werden kann. Sofern Sie nicht wissen, was Sie tun, würde ich Optionen 2 und 3 für Sie nicht empfehlen (es könnte Nebenwirkungen geben, mit denen Sie nicht umgehen können). – Thomas
Außerdem, wenn Sie gerade den Listener hinzugefügt haben, wie sollte 'c.getStock();' _any_ value zurückgeben? 'onItemSelected()' konnte zu diesem Zeitpunkt nicht aufgerufen werden. – Thomas
hi, ich bin mir nicht sicher was du sagst .. String stockCode = c.getStock(); gibt null zurück. Die Methode "getStock" hat einen Rückgabetyp von String –