Aufruf einer Methode aus einer Tätigkeit in einem benutzerdefinierten Dialogfeld Aktivität
Arbeite ich auf einem android-Anwendung, in der ich bin mit einer Aktivität, wie ein benutzerdefiniertes Dialogfeld.Ich habe namens meine benutzerdefinierte Dialogfeld Tätigkeit als Dialog_activity
und mein Spiel Tätigkeit als Activity1
. In Dialog_activity
gibt es zwei Tasten, nämlich ja und Nein. Der dialog fragt den Benutzer, ob er/Sie will ein neues Spiel starten. Also, wie kann ich den Aufruf einer Methode von Activity1
im Dialog_activity
im OnClick
- Methode der Schaltfläche "ja". Dies ist ein tic tac toe-Anwendung.
Hier ist der code:
Activity1
public class Dialog_activity extends Activity {
Button yesbutton,nobutton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_1);
Button btn1 = (Button) findViewById(R.id.button1);
Button btn2 = (Button) findViewById(R.id.button2);
Button btn3 = (Button) findViewById(R.id.button3);
Button btn4 = (Button) findViewById(R.id.button4);
Button btn5 = (Button) findViewById(R.id.button5);
Button btn6 = (Button) findViewById(R.id.button6);
Button btn7 = (Button) findViewById(R.id.button7);
Button btn8 = (Button) findViewById(R.id.button8);
Button btn9 = (Button) findViewById(R.id.button9);
}
public void resetButtons()
{
btn1.setText("");
btn2.setText("");
btn3.setText("");
btn4.setText("");
btn5.setText("");
btn6.setText("");
btn7.setText("");
btn8.setText("");
btn9.setText("");
}
}
Dialog Aktivität
public class Dialog_activity extends Activity {
Button yesbutton,nobutton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
setContentView(R.layout.dialog_activity);
Intent startdialog = getIntent();
yesbutton = (Button) findViewById(R.id.button);
nobutton = (Button) findViewById(R.id.button2);
nobutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
yesbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
//call the resetButtons() method
}
});
Dank!
- würden Sie bitte poste den code-Ausschnitt, wo du Hilfe brauchst?
- Ja, ich werde den code einzufügen.
- Veröffentlichen Sie Ihren code .Statt der Schaffung einer dialog_activity , sollten Sie erstellen einen benutzerdefinierten dialog ! Dann können Sie ganz einfach rufen Sie die gewünschte Methode
- Ich habe den code.
- Erstellen Sie ein Dialogfeld oder eine dialog-fragment anstelle einer Aktivität. Diese wird leicht Ihr problem lösen. Poste bitte code für weitere Hilfe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier sind ein paar Optionen:
Sie können die reset-Taste() als statische, sondern für die Sie auch haben, um die buttons statisch.Diese Methode wird nicht empfohlen.
Verwenden Sie diese So erstellen Sie ein Benutzerdefiniertes Dialogfeld in android? erstellen Sie einen benutzerdefinierten dialog und Befüllen Sie das benutzerdefinierte Dialogfeld in Ihrer Activity1 nur .Sie können CustomDialogClass als innere Klasse und so wird es in der Lage sein, um Zugriff auf alle Activity1 Methoden.
Hoffe, es hilft.
Machen-Instanz Dialog_activity in Activity1 mit der Instanz aufrufen der Methode, die Sie wollen.
Gibt es zwei Möglichkeiten, die ich vorschlagen kann,
1) starten Sie den Dialog Aktivität von Spiel-Aktivität für Ergebnis mit startActivityForResult() und überschreiben
onActivityResult()
im GameActivity2) Registrieren GameActivity zu hören, für die Benutzerdefinierte Vorsatz Aktion mit
registerReceiver()
- und broadcast -, dass die Aktion in DialogActivity mithilfesendBroadCast()
1. import activity_1
2. schreiben Klasse variable Dialog_activity activity1 innen unten Klasse
3. rufen Sie reset-Methode mit dieser activity1 Referenz activity1.resetButtons(); innerhalb yesbutton onclocklistener
1. import activity_1
2. schreiben Klasse variable Dialog_activity activity1 innen unten Klasse