Comment créer notre propre interface Auditeur dans Android?

Quelqu'un peut-il m'aider à créer une interface d'écoute définie par l'utilisateur avec certains extraits de code?

  • Comment démarrer une intention si le contexte n'est pas le contexte de l'activité mais le contexte de l'application
  • L'émulateur AndroidStudio "ne fonctionnera pas à moins que vous mette à jour Google Play Services"
  • Comment accéder aux vues depuis le téléavertisseur d'affichage
  • SSL Pinning utilisant Google Volley
  • Adobe AIR 3.1 Native Extension pour Android - contexte d'extension nul dans actionscript
  • Problème de mise à jour d'un widget d'application utilisant la collection
  • 6 Solutions collect form web for “Comment créer notre propre interface Auditeur dans Android?”

    public interface MyListener { // you can define any parameter as per your requirement public void callback(View view, String result); } public class MyActivity extends Activity implements MyListener { @override public void onCreate(){ MyButton m = new MyButton(this); } // method invoke when mybutton will click @override public void callback(View view, String result) { // do your stuff here } } public class MyButton { MyListener ml; // constructor MyButton(MyListener ml) { this.ml = ml; } public void MyLogicToIntimateOthere() { ml.callback(this, "success"); } } 

    Veuillez lire le modèle d'observateur

    Interface auditeur

     public interface OnEventListener { void onEvent(EventResult er); // or void onEvent(); as per your need } 

    Alors dans ta classe disent classe d' Event

     public class Event { private OnEventListener mOnEventListener; public void setOnEventListener(OnEventListener listener) { mOnEventListener = listener; } public void doEvent() { /* * code code code */ // and in the end if (mOnEventListener != null) mOnEventListener.onEvent(eventResult); // event result object :) } } 

    Dans votre classe de conducteur MyTestDriver

     public class MyTestDriver { public static void main(String[] args) { Event e = new Event(); e.setOnEventListener(new OnEventListener() { public void onEvent(EventResult er) { // do your work. } }); e.doEvent(); } } 

    J'ai créé un AsyncTask Listener générique qui provient de AsycTask seperate class et le donne à CallingActivity en utilisant Interface Callback.

     new GenericAsyncTask(context,new AsyncTaskCompleteListener() { public void onTaskComplete(String response) { // do your work. } }).execute(); 

    Interface

     interface AsyncTaskCompleteListener<T> { public void onTaskComplete(T result); } 

    GenericAsyncTask

     class GenericAsyncTask extends AsyncTask<String, Void, String> { private AsyncTaskCompleteListener<String> callback; public A(Context context, AsyncTaskCompleteListener<String> cb) { this.context = context; this.callback = cb; } protected void onPostExecute(String result) { finalResult = result; callback.onTaskComplete(result); } } 

    Jetez un oeil à cette question pour plus de détails.

    Créer une interface d'écoute.

     public interface YourCustomListener { public void onCustomClick(View view); // pass view as argument or whatever you want. } 

    Et créez la méthode setOnCustomClick dans une autre activité (ou fragment), où vous souhaitez appliquer votre auditeur personnalisé ……

      public void setCustomClickListener(YourCustomListener yourCustomListener) { this.yourCustomListener= yourCustomListener; } 

    Appelez cette méthode à partir de votre première activité et passez l'interface de l'auditeur …

    Dans Android, vous pouvez créer une interface telle que Listener, et votre activité l'implémente, mais je ne pense pas que ce soit une bonne idée. Si nous avons beaucoup de composants pour écouter les changements de leur état, nous pouvons créer un interface ListListener implémente l'Auditeur et utiliser le code de type pour les gérer. Nous pouvons lier la méthode lorsque nous créons un fichier XML, par exemple:

     <Button android:id="@+id/button4" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Button4" android:onClick="Btn4OnClick" /> 

    Et le code source:

      public void Btn4OnClick(View view) { String strTmp = "点击Button04"; tv.setText(strTmp); } 

    Mais je ne pense pas que ce soit une bonne idée …

    Méthode simple pour faire cette approche. OnClickListeners abord les OnClickListeners dans votre classe d'activité.

    Code:

     class MainActivity extends Activity implements OnClickListeners{ protected void OnCreate(Bundle bundle) { super.onCreate(bundle); setContentView(R.layout.activity_main.xml); Button b1=(Button)findViewById(R.id.sipsi); Button b2=(Button)findViewById(R.id.pipsi); b1.SetOnClickListener(this); b2.SetOnClickListener(this); } public void OnClick(View V) { int i=v.getId(); switch(i) { case R.id.sipsi: { //you can do anything from this button break; } case R.id.pipsi: { //you can do anything from this button break; } } } 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.