6
votes

Passez la méthode de rappel Résultat avec une classe d'activité sans activité à la classe d'activités Android?

J'ai besoin de créer un composant réutilisable de tissu Twitter.My première étape pour permettre la connexion avec Twitter en appelant simplement la méthode à partir d'une classe.

code

< > Classe xxx

activité xxx

ici, je vais obtenir le résultat sur la méthode de rappel xxx

Comment puis-je réussir ce résultat (succès / échec) à l'activité Checklib pour faire d'autres actions.<

:)


0 commentaires

3 Réponses :


1
votes

S'il s'agit d'un type primitif, comme un booléen ou une chaîne (OK, celui-ci n'est pas primitif, mais toujours), vous pouvez le transmettre comme un supplément dans une intention que vous envoyez à l'activité.

S'il s'agit d'un objet plus complexe ou que vous n'avez pas Contexte Accès dans votre classe, essayez GreenRobot Eventbus, une jolie bibliothèque cool créée exactement pour de telles situations.


0 commentaires

7
votes

Vous pouvez définir l'écouteur pour réussir ou défaillance dans votre twitterauth.class code>, puis définissez cet écouteur dans votre activité ( checklib.class code>) pour vous en informer le succès ou l'échec , comme ceci: xxx pré>

dans la méthode de réussite et de défaillance, vous devez remplir l'écouteur: P>

dans la méthode de réussite (dans twitterauth.class): P>

.
.
.

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
auth = new TwitterAuth(CheckLib.this, CONSUMER_KEY, CONSUMER_SECRET);
auth.setListener(new TwitterLoginListener{

     @Override
     public void success(Result<TwitterSession> twitterSessionResult){
        //login success
     }

     @Override
     public void failure(TwitterException e){
        //login failed
     }
}); 
.
.
.


2 commentaires

Merci. Oui, il y a une autre façon, comme @kelevandos a dit que vous pouvez utiliser eventbus.Si vous recherchez google, vous pouvez trouver de bonnes librares. En bus, vous pouvez enregistrer plus de cours (deux, trois, quatre, ...) et les notifier lorsqu'un événement se produit.Si cette réponse vous a aidé, pouvez-vous marquer cette réponse comme réponse acceptée.


Bien sûr, ils devraient s'inscrire sur le bus et se désenregistrer eux-mêmes lorsque leur travail effectué, l'une des bonnes utilisations de bus est en service et de l'activité rappel



0
votes
   You can use interface  and implement  the interface method from your dologin method


    check my sample

    public interface sampleInterface {
        // you can define any parameter as per your requirement
        public void yourMethod(boolean value);
    }


    public void doLogin(sampleInterface si) {

          public void publishTweet(String tweet) {
           sampleInterface sampleIn;
        service = Twitter.getInstance().getApiClient().getStatusesService();
        service.update(tweet, null, null, null, null, null, null, null, new Callback<Tweet>() {
            @Override
            public void success(Result<Tweet> tweetResult) {
                Toast.makeText(context, "Tweet Updated !",
                        Toast.LENGTH_SHORT).show();
            si.yourMethod(true);
            }

            @Override
            public void failure(TwitterException e) {
                Toast.makeText(context, "Error occured !",
                        Toast.LENGTH_SHORT).show();
                si.yourMethod(false);
            }
        });
        }
    }


    inside your activity class

            public void onClick(View v) {
                auth.doLogin(new sampleInterface() {
                    @Override
                    public void yourMethod(boolean value) {
                        //GET your result
                    }
                });
            }

0 commentaires