我在微调器上设置选定项目的语言。更改未反映在下一行。所以,我想刷新我的片段。
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;
}
}
我还可以在每个项目选择的更改上调用一个方法。但是,我希望通过刷新片段来实现它。在每个交换机的情况下,我想刷新片段。请帮我解决这个问题。
编辑1:
有三个片段,附带主要活动:
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);
答案 0 :(得分:1)
您可以简单地分离并附加片段,如下所示
Fragment currentFragment = getFragmentManager().findFragmentByTag("tab2");
FragmentTransaction fragTransaction = getFragmentManager().beginTransaction();
fragTransaction.detach(currentFragment);
fragTransaction.attach(currentFragment);
fragTransaction.commit();
这将刷新视图,并且区域设置将更改