¿Cómo crear nuestra propia interfaz de escucha en android?

¿Podría alguien ayudarme a crear interfaz de escucha definida por el usuario con algunos fragmentos de código?

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"); } } 

Por favor, lea el patrón de observador

Interfaz del oyente

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

Entonces en su clase diga clase de 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 :) } } 

En tu clase de conductor 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(); } } 

He creado un Generic AsyncTask Listener que obtener resultados de AsycTask clase separada y darle a CallingActivity utilizando la interfaz de devolución de llamada.

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

Interfaz

 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); } } 

Echa un vistazo a esto , esta pregunta para más detalles.

Crear interfaz de escucha.

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

Y crear el método setOnCustomClick en otra actividad (o fragmento), donde desea aplicar su oyente personalizado ……

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

Llame a este método desde su primera actividad y pase la interfaz del oyente …

En Android, puede crear una interfaz como Listener, y su actividad lo implementa, pero no creo que sea una buena idea. Si tenemos muchos componentes para escuchar los cambios de su estado, podemos crear un BaseListener implementa la interfaz de escucha, y el uso de código de tipo para manejarlos. Podemos vincular el método cuando creamos un archivo XML, por ejemplo:

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

Y el código fuente:

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

Pero no creo que sea una buena idea …

Simple método para hacer este enfoque. En primer lugar, implementa OnClickListeners en tu clase de actividad.

Código:

 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; } } } 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.