복합 구성 요소를 작성하고 사용자 지정 수신기를 추가하여 반응했습니다.Compound 구성 요소 사용자 지정 수신기
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는 '활동'내에 공개 청취자를 유지하는 것을 보여줍니다. 너도 그걸 시도 했니? –
나는 그것을 시도했으나 효과가 없었다. 작동을 방해하는 선형 레이아웃이 있습니까? –