私は"ヘッダ"を3つのリストの先頭に置いています。これには、単純な読み取り更新更新&リストを編集するための削除ボタンが含まれています。は、Androidで継承を正しく使用しています
どのように私はヘッダーをサブクラスに取り掛かる必要がありますので、私はTaskHeader、ProjectHeader、ClientsHeader(サブクラス)でリスナーを上書きすることができます
レイアウト、ボタン作成、割り当てなどとして見ては...すべて同じで行うことができますimplementaionとリスナーの割り当てだけを特定のサブクラスに任せることができます。
示唆溶液で更新
インタフェース
import android.view.View.OnClickListener;
public interface AttachClickListeners {
void attachCreateListener(OnClickListener l);
void attachReadListener(OnClickListener l);
void attachUpdateListener(OnClickListener l);
void attachDeleteListener(OnClickListener l);
}
ヘッダ
public class Header extends LinearLayout implements AttachClickListeners {
/* removed for shortness */
public void attachCreateListener(OnClickListener listener) {
insertBtn.setOnClickListener(listener);
}
public void attachReadListener(OnClickListener listener) {
selectBtn.setOnClickListener(listener);
}
public void attachUpdateListener(OnClickListener listener) {
updateBtn.setOnClickListener(listener);
}
public void attachDeleteListener(OnClickListener listener) {
deleteBtn.setOnClickListener(listener);
}
私はヘッダーを作成するたびに、@elijahで提案されているように別のリスナーオブジェクトを渡します。
おかげでリンクが面白かったです。私の解決策で質問を編集して、インターフェイスソリューションの利点を説明できるかもしれません。私は抽象クラスと同様にして、抽象メソッドを提供しました。つまり、サブクラスがオーバーライドしていたgetListener()です。 – Luke
私はあなたがここで何を求めているのかは実際は分かりません。質問を編集すると、私はそれを見てうれしいです。インターフェイスのソリューションの利点は、ヘッダーオブジェクトをサブクラス化する必要がないことです。Androidフレームワークを見れば、それは「完了しました」...そうでなければ、すべてのボタンなどをサブクラス化する必要があります私たちはそれが何をするのかを見ていました。 – elijah
私は達成しようとしていることを説明するために質問を更新しました。 – Luke