私は複合コンポーネントを書き、カスタムリスナーを追加して反応させました。複合コンポーネントのカスタムリスナー
xmlファイルを使用する複合コンポーネントのクラスの内部。
public class VerticalCounterBlock extends LinearLayout {
public interface VerticalCounterBlockListener {
public void onCountChanged(int newCount);
}
private VerticalCounterBlockListener mVerticalCounterBlockListener = null;
public void setVerticalCounterBlockListener(VerticalCounterBlockListener listener){
mVerticalCounterBlockListener = listener;
}
// ... Other functions
}
私は私のインタフェースを持って、私がリスナーを持って、私はセッターを持って、私は複合コンポーネントを持っているボタンで、このようなリスナーに係合します。私はそのトーストを見ないでも、それは関数呼び出しと係合ん、私の主な活動
m20_vcb = (VerticalCounterBlock) findViewById(R.id.vcb_m20);
m20_vcb.setVerticalCounterBlockListener(new VerticalCounterBlock.VerticalCounterBlockListener() {
@Override
public void onCountChanged(int newCount) {
increasePreachCountTotal();
Toast.makeText(CounterActivity.this, String.format("%1$d", newCount), Toast.LENGTH_SHORT).show();
}
});
で
addBtn = (Button)findViewById(R.id.btn_addcount);
addBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
count++;
counttv.setText(String.format("%1$d", count));
Toast.makeText(getContext(), "VCB", Toast.LENGTH_SHORT).show();
if(mVerticalCounterBlockListener != null) {
mVerticalCounterBlockListener.onCountChanged(count);
}
}
});
をテストするとき、私はそこに表示されていることトーストを見ることができます。私は何が欠けていますか?
すべての良い提案。私はあなたの最初の試み、別のインターフェイスクラスを使用しました。それは私の正気と組織の好みのために戻ったので、助けになりませんでした。提案2/3はリスナーに問題を引き起こすか?デバッガが壊れて切断されてしまったので、私はトーストしか使用しませんでした。 –
コードセグメント2は、あなたの 'Activity'の中にパブリックリスナーを保持することを示しています。あなたもそれを試しましたか? –
私はそれを試みましたが、うまくいきませんでした。動作を妨げる線形レイアウトのものがありますか? –