Hallo zusammen,
Ich brauche mal wieder einen kleinen Tritt in den Hintern!
Und zwar möchte ich aus einer Klasse heraus auf Elemente einer Activity zugreifen.
Also in meinem speziellen Fall habe ich eine Klasse welche einen Select Dialog anzeigt.
Wenn ein Punkt aus diesem gewählt wurde soll ein TextView in der Activity geändert werden.
Ich würde gerne wissen wie ich das hin bekommen kann? Bzw. ob ich überhaupt den korrekten Lösungsansatz habe?
Hier mal den Code meiner Activity und meiner Dialogklasse.
Java
package de.hobride.choicelisttest;
import de.hobride.choicelisttest.klassen.SelectDialog;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView tv;
private SelectDialog sd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.newTextView);
tv.setText("Es wurde nichts gewählt.");
sd = new SelectDialog(this);
sd.showDialog();
}
}
Alles anzeigen
Java
package de.hobride.choicelisttest.klassen;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.widget.Toast;
public class SelectDialog {
private Context mcontext;
public SelectDialog(Context context) {
mcontext = context;
}
public void showDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(mcontext);
builder.setTitle("Track Auswahl");
final CharSequence[] cL = { "Cola", "Fanta", "Sprite", "MezzoMix", "Seven UP" };
int selected = -1; // does not select anything
builder.setSingleChoiceItems(cL, selected, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(mcontext, cL[which], Toast.LENGTH_LONG).show();
// Der Toast wird angezeigt
// tv.setText("es wurde " + cL[which] + " gewählt");
// Beim TextView gibt es logischerweise einen Fehler
// wie kann ich von hier aus die TextView ändern?
}
});
AlertDialog alert = builder.create();
alert.show();
}
}
Alles anzeigen
Bitte habt Nachsicht , ich bin noch blutiger Anfänger! Ach ja gegoogelt hab ich natürlich auch schon (erfolglos).
Gruß hobride