私は質問があります。ツールバーのボタンをonclickし、別の2つのtablayoutフラグメントでメッセージを表示すると、それは可能ですか?たとえば、下のツールバーのボタンテストをクリックすると、別の2つのフラグメントテキストビューがテキストで表示されます。Android:ツールバー内のボタンonclick別の2つのtablayoutにメッセージを表示
MainActivity
public class MainActivity extends AppCompatActivity implements TabLayout.OnTabSelectedListener{
private TabLayout tabLayout;
private ViewPager viewPager;
int ans =3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
tabLayout = (TabLayout) findViewById(R.id.tabLayout);
BasePagerAdapter adapter = new BasePagerAdapter(getSupportFragmentManager());
Tab1 tab1 = new Tab1();
Tab2 tab2 = new Tab2();
adapter.addFragment(tab1, "1");
adapter.addFragment(tab2, "2");
viewPager = (ViewPager) findViewById(R.id.pager);
viewPager.setAdapter(adapter);
tabLayout.setOnTabSelectedListener(this);
tabLayout.setupWithViewPager(viewPager);
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
tabLayout.setupWithViewPager(viewPager);
}
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
public class BasePagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public BasePagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
public void removeFragment(int position) {
mFragmentTitleList.remove(position);
mFragmentList.remove(position);
notifyDataSetChanged();
}
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
}
Tab1を
public class Tab1 extends Fragment {
EditText editext,editext2,editext3;
Button test;
DBController db;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View h = inflater.inflate(R.layout.tab1, container, false);
editext =(EditText)h.findViewById(R.id.editText);
editext2 =(EditText)h.findViewById(R.id.editText2);
editext3 =(EditText)h.findViewById(R.id.editText3);
return h;
}
TAB2
public class Tab2 extends Fragment {
TextView textView2;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View h = inflater.inflate(R.layout.tab2, container, false);
textView2 = (TextView) h.findViewById(R.id.textView2);
return h;
}
感謝を参照して、使用状況を表示するには、イベントバスについての簡単なチュートリアルはありますか? –
答えに記載されているとおり、これは今まで私が見つけた最も簡単なものです:http://www.andreas-schrade.de/2015/11/28/android-how-to-use-the-greenrobot-eventbus/ – OBX
ちょっと古いので、最新のバージョン – OBX