1

重複の可能性:
Androidでコールバックを定義する方法は?

私はインターネットを通じてコールバックについて読んでいましたが、これはAndroidエコシステムで大きな重みを持っていることを理解しています。

誰かが例を述べて、コールバックとは何か、それらがどのように機能するかを説明できますか?

4

1 に答える 1

2

インターフェイスを使用したコールバックを意味しますか?はいの場合、ここに例があります

これはcallbackmenu.javaです

package com.example.test.callback;

public interface CallbackCalendar {
    public void onClick();
}

これはあなたがそれをどのように実装するかの例です

public class CallbackCell implements CallbackCalendar{

    @Override
    public void onClick() {
        Log.i("TAG", "IT WORKS!);
        addChild(2);
    }
}

これは、カレンダーライブラリで使用しているような別のビューからビューにアクセスできるようにする例です。3つのビュークラス、カレンダービュー、カレンダー行、カレンダーセルを作成します。

このコールバックをカレンダービューからカレンダーセルに渡すと、この例では、カレンダーセルからカレンダービューにビュー、設定値、またはその他のものを追加できます(カレンダーセルはカレンダー行の一部であり、カレンダー行はカレンダービューの一部です)。ユーザーがセルをクリックするたびに設定しようとしていますが、カレンダービュー(メインビュー)に別のビューを追加します

これは、カレンダーセルでコールバックを使用する例です

public CalendarCell(Context context,int day,final CallbackCalendar callback)
{
    super(context);
    final int temp = day;
    this.context = context;
    this.setBackgroundColor(Color.parseColor("#FFFFFFFF"));
    LinearLayout.LayoutParams lpCalendarCell = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
    lpCalendarCell.weight = 1;
    this.setLayoutParams(lpCalendarCell);
    this.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            callback.onClick();
        }
    });
    addContainer(day);
}

そのため、カレンダービューでコールバックを設定し、それをカレンダー行に渡し、カレンダーセルに再度渡し、カレンダーセルでonClickを呼び出します。

ご不明な点がございましたら、コメント欄にご記入ください:)

于 2012-10-25T05:34:22.643 に答える