gpt4 book ai didi

android - 如何刷新所选项目微调器上的 fragment

转载 作者:行者123 更新时间:2023-11-30 02:03:56 31 4
gpt4 key购买 nike

我在微调器中为所选项目设置语言。更改不会反射(reflect)在下一行。所以,我想刷新我的 fragment 。

public class TodayChapter extends Fragment {
String chapter_verse = "";
TextView textView;
ListView todayChapterListView;
ArrayAdapter<String> adapter;
DailyQuranMethods dailyQuranMethods = new DailyQuranMethods();
private final String[] translateLanguage={"Translate To","English","Urdu","Hindi"};

public TodayChapter() {
// Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_today_chapter, container, false);

todayChapterListView = (ListView)view.findViewById(R.id.today_chapter_list_view);
Spinner spinner = (Spinner)view.findViewById(R.id.selectLanguage);
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(getActivity().getBaseContext(), android.R.layout.simple_spinner_item, translateLanguage );
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // The drop down view
spinner.setAdapter(spinnerArrayAdapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
switch (position)
{
case 0:
dailyQuranMethods.setTranslationLanguage(getActivity().getBaseContext(), "english");
break;
case 1:
dailyQuranMethods.setTranslationLanguage(getActivity().getBaseContext(),"english");
break;
case 2:
dailyQuranMethods.setTranslationLanguage(getActivity().getBaseContext(),"urdu");
break;
default:
dailyQuranMethods.setTranslationLanguage(getActivity().getBaseContext(),"hindi");
break;

}

}

@Override
public void onNothingSelected(AdapterView<?> parent) {

}
});
String[] chapter = dailyQuranMethods.getChapter(dailyQuranMethods.getChapterNoToday(getActivity().getBaseContext()), dailyQuranMethods.getTranslationLanguage(getActivity().getBaseContext()), getActivity());

String chapterName = getActivity().getResources().getStringArray(R.array.chapters_name_arabic)[dailyQuranMethods.getChapterNoToday(getActivity().getBaseContext()) - 1 ];

TextView textView = (TextView)view.findViewById(R.id.chapterName);
textView.setText(chapterName);
adapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,chapter);

todayChapterListView.setAdapter(adapter);

return view;
}

}

我还可以在每个选定的项目更改时调用一个方法。但是,我希望通过刷新 fragment 来实现它。在每个开关案例中,我想刷新 fragment 。请帮我解决这个问题。

编辑 1:

一共有三个 fragment ,附在主要 Activity 上:

mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);

mTabHost.addTab(mTabHost.newTabSpec("tab1").setIndicator("Today's Verse"),
TodayVerse.class, null);
mTabHost.addTab(mTabHost.newTabSpec("tab2").setIndicator("Today's Chapter"),
TodayChapter.class, null);
mTabHost.addTab(mTabHost.newTabSpec("tab3").setIndicator("Complete Qur'an"),
completeQuran.class, null);

最佳答案

您可以简单地分离和附加 fragment ,如下所示

    Fragment currentFragment = getFragmentManager().findFragmentByTag("tab2");
FragmentTransaction fragTransaction = getFragmentManager().beginTransaction();
fragTransaction.detach(currentFragment);
fragTransaction.attach(currentFragment);
fragTransaction.commit();

这将刷新 View 并且区域设置将更改

关于android - 如何刷新所选项目微调器上的 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31043980/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com