2017-11-14 3 views
0

Ist es möglich, einen Dialog von Intent aufzurufen? Ich habe zwei Activity RegisterActivity und AuthenticActivity und ich habe benutzerdefinierte Dialog auf RegisterActivity implementiert, aber ich brauche auch den gleichen Dialog auf AuthenticActivity. Wie können wir diesen Dialog auf AuthenticActivity bekommen? Können wir das von Absicht bekommen, bitte schlagen Sie mich vor? Ich möchte keinen Code für beide Aktivitäten schreiben.Aufruf des Dialogs von Intent

+0

ein Dialogfeld-Klasse erstellen und verwenden, wo immer u wollen. –

+0

Sie sollten in Betracht ziehen, Ereignisse zu verwenden – Eenvincible

+1

IMO, sollten Sie eine Aktivität für Registrierung und Authentifizierung (LoginActivity) haben, aber das wäre zwei verschiedene Fragmente. Es ist besser, eine andere Klasse für Ihren Dialog zu erstellen (dialogFragment erweitern) und den Dialog wann immer Sie wollen mit etwas wie: new MyDialogFragment(). Show (getFragmentManager(), MyDialogFragment.TAG) –

Antwort

0

kurzer awnser: Verwenden Sie einen BroadcastReceiver.

@Override 
public void onReceive(Context context, Intent intent) { 

    if (intent.getAction().equals(ACTION_EXECUTE_EXAMPLE_TEST)) { 
     //Do whatever you want 
    } 
} 

Überprüfen Sie es selbst . Fügen Sie es auf Manifest und dann können Sie die Absicht in Ihren Aktivitäten erhalten;)

1

Haben Sie eine BaseActivity in der Sie gemeinsamen Code haben, in Ihrem Fall eine öffentliche Methode. Sowohl Ihre RegisterActivity als auch Ihre AuthenticActivity sollten BaseActivity erweitern.

public class BaseActivity AppCompatActivity erstreckt {

public void displayCommonDialog() { 

    View v = getLayoutInflater().inflate(R.layout.fragment_manage_account_dialog, null); 

........ ........

} 

}

public class RegisterActivity erstreckt BaseActivity {

........ ......... .........

// Um ​​den Dialog aufzurufen displayCommonDialog();

}

Sie Schnittstelle oder EventBus Bibliothek verwenden können Ereignis auslösen/haben Zuhörer Rückruf die Click-Ereignisse im Dialog zu erfassen.

0

Stellen statische Konstante Methode wie

public static void showDialog(PASS_REQUIRED_PARAMS){ 
// do your stuff 
} 

diese Methode rufen Sie einfach schreiben müssen,

CLASS_NAME.showDialog(PASS_REQUIRED_PARAMS) 
Verwandte Themen