У меня довольно неприятная проблема с использованием вкладок в android. Я не уверен, как они работают, проблема, с которой я сталкиваюсь, - это знать, где поставить логику моего кода. например, на первой вкладке я хотел применить календарь, а вторая вкладка загрузила файл, например, где бы я поместил эту логику, у меня есть 3 xml
фрагменты, и до сих пор я пытался закодировать логику с помощью onCreateView
. Если бы кто-нибудь мог объяснить, как работает вкладка, я буду вечно благодарен, я использовал установленную по умолчанию андроид для работы с вкладками и добавил 3 фрагмента.Где я должен поместить свой код при использовании активности с вкладками?
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if(getArguments().getInt(ARG_SECTION_NUMBER)==1) {
View rootView = inflater.inflate(R.layout.fragment_message, container, false);
return rootView;
}
else if(getArguments().getInt(ARG_SECTION_NUMBER)==2){
View rootView = inflater.inflate(R.layout.fragment_read, container, false);
TextView textView= (TextView)rootView.findViewById(R.id.textView_two);
textView.setText("Working");
return rootView;
}
else{
View rootView = inflater.inflate(R.layout.fragment_calendar, container, false);
// would I put my logic here?
return rootView;
}
}
}
Update 2 Так что теперь я пытаюсь слушать нажатие кнопок и показать тост на одном из фрагментов, кнопка не реагирует и Тосты не появляются.
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
final View rootView=inflater.inflate(R.layout.fragment_calendar, container, false);
//final ActionBar actionBar = getSupportActionBar();
//actionBar.setDisplayHomeAsUpEnabled(false);
//actionBar.setTitle(null);
//Toast.makeText(getActivity(),"AKHBKH",Toast.LENGTH_LONG).show();
Button button1=(Button)rootView.findViewById(R.id.button_test1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.i("","");
Toast.makeText(getActivity(),"ddfdf",Toast.LENGTH_LONG).show();
}
});
PS я попытался все это на Toast getActivity() getActivity(). GetApplicationContext() getBaseContext() getContext()
не уверен, где выше код помещается, но я думаю, что лучший подход для этого случая иметь одну активность и несколько фрагментов (по одной для каждой вкладки) и использовать «FragmentPagerAdapter» или «FragmentStatePagerAdapter» для отображения фрагментов (вкладок), теперь ясно, что код будет помещен в каждый фрагмент (каждый фрагмент содержит собственный код/logic) – Yazan