Používam BottomBar v mojej hlavnej činnosti a nasledujem príklad kódu z githubu, do ktorého pridáva poslucháčov na karty:
this.bottomBar = (BottomBar) findViewById(R.id.bottomBar);
bottomBar.setOnTabSelectListener(new OnTabSelectListener() {
@Override
public void onTabSelected(@IdRes int tabId) {
switch (tabId) {
case R.id.tab_evaluate :
Toast.makeText(getApplicationContext(),"Evaluate",Toast.LENGTH_SHORT).show();
break;
case R.id.tab_info:
Toast.makeText(getApplicationContext(),"INfo",Toast.LENGTH_SHORT).show();
break;
default:
Toast.makeText(getApplicationContext(),"Other",Toast.LENGTH_SHORT).show();
break;
}
}
});
Funguje to perfektne a vidím všetky toasty.
Môj problém: Vo svojej hlavnej činnosti mám dve metódy, ktoré by som chcel zavolať v závislosti od vybranej karty:
private void showQrCodeView(){
this.contentFrame.setVisibility(View.GONE);
this.qrCodeReaderView.setVisibility(View.VISIBLE);
}
private void hideQrCodeView(){
this.contentFrame.setVisibility(View.VISIBLE);
this.qrCodeReaderView.setVisibility(View.GONE);
}
Aby som to urobil, snažím sa to, čo nevrhá žiadne chyby, ale tiež nefunguje.
case R.id.tab_evaluate :
Toast.makeText(getApplicationContext(),"Evaluate",Toast.LENGTH_SHORT).show();
MainActivity.this.showQrCodeView();
break;
Moja otázka znie, ako môžem nazvať svoje metódy MainActivity z internetu OnTabSelectListener
?
odpovede:
1 pre odpoveď č. 1Len som prišiel na to, v čom bol problém: metódy musia byť verejné.