如何在微调器上刷新选定项目的片段

时间:2015-06-25 07:33:11

标签: android android-fragments

我在微调器上设置选定项目的语言。更改未反映在下一行。所以,我想刷新我的片段。

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);

1 个答案:

答案 0 :(得分:1)

您可以简单地分离并附加片段,如下所示

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

这将刷新视图,并且区域设置将更改

相关问题