Android 选项卡片段更改操作栏微调器

Android 选项卡片段更改操作栏微调器,android,android-fragments,android-actionbar,android-spinner,Android,Android Fragments,Android Actionbar,Android Spinner,我有片段活动,有标签片段。像这样 但每当我点击第二个标签,动作栏上的微调器就会变成空的,就像这样 我认为这将是一个常见的问题,但如果它不是告诉我,我会提供一些代码也 我没有做任何与它相关的事情,但我希望它的代码可以帮助你 mTabHost.setOnTabChangedListener(new OnTabChangeListener() { @Override public void onTabChanged(String arg0) { FragmentManager

我有片段活动,有标签片段。像这样

但每当我点击第二个标签,动作栏上的微调器就会变成空的,就像这样

我认为这将是一个常见的问题,但如果它不是告诉我,我会提供一些代码也

我没有做任何与它相关的事情,但我希望它的代码可以帮助你

mTabHost.setOnTabChangedListener(new OnTabChangeListener() {

    @Override
    public void onTabChanged(String arg0) {
    FragmentManager fragmentManager = getSupportFragmentManager();
    InterestTabFragment tabOneFrgment = (InterestTabFragment) fragmentManager
                .findFragmentByTag("tab1");

    InteractionTabFragment tabTwoFrgment = (InteractionTabFragment) fragmentManager
                            .findFragmentByTag("tab2");

    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

    if (tabOneFrgment != null && tabOneFrgment.isVisible()) {
        if (isInterestDataChanged) {                            
            // delete cache filed of interest
            }
        }else if(tabTwoFrgment != null && tabTwoFrgment.isVisible()){
            if (isInteractionDataChanged) {                         
            // delete cache filed of interaction

            }
        }else{
        if (isHangoutDataChanged) {
            // delete cache filed of hangout
            }

            }
                    fragmentTransaction.commit();
                }
            });
这在OnCreateOptionMenu中

MenuItem item = menu.findItem(R.id.spListOpt);
spinner = (Spinner) MenuItemCompat.getActionView(item);
spinner.setAdapter(YearSpinnerAdapter);
spinner.setBackgroundResource(R.drawable.spinner);
这是对数据的调用,我正在其执行后代码中设置适配器

    class joingYearCall extends AsyncTask<String, String, String>{

    @Override
    protected String doInBackground(String... uri) {
        String responseString = null;
        responseString = HttpManager.GetData(uri[0]);           
            JSONObject joiningResult;
            JSONObject year;
            try {
                joiningResult = new JSONObject(responseString);
                year = joiningResult.getJSONObject("ProfileInfoResult");
                joiningYear = Integer.parseInt(year.getString("joiningYear"));
                items.clear();
                Calendar now = Calendar.getInstance();
                int currentYear = now.get(Calendar.YEAR);
                items.add("All");
                while(currentYear >= joiningYear)
                {
                    items.add(String.valueOf(currentYear--));
                }
            } catch (JSONException e) {                 
                e.printStackTrace();
            }
        }
        return "";
    }

    @Override
    protected void onPostExecute(String result) {
        spinner.setAdapter(YearsSpinnerAdapter);
    }

    @Override
    protected void onPreExecute() {
    }
}

您是否正在更改选项卡上的片段单击?我在xml文件中有android.support.v4.app.FragmentTabHost,然后添加类似thismTabHost.setupthis、getSupportFragmentManager、android.R.id.tabcontent的选项卡;mTabHost.addTab mTabHost.newTabSpectab1.setIndicator getResources.getStringR.string.interest,InterestAttabFragment.class,null;你的兴趣是什么?是活动还是片段?我在标签上添加了更改代码,请看一下。可能是出了什么问题。
    private SpinnerAdapter YearsSpinnerAdapter = new BaseAdapter() {

    private TextView text;

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            convertView = mInflator.inflate(R.layout.spinner_hint_item, null);
        }
        text = (TextView) convertView.findViewById(R.id.spinnerTarget);
        text.setSingleLine(true);
        if (!selected) {
            Drawable img = getResources().getDrawable( R.drawable.time_stalk);
            img.setBounds( 0, 0, 30, 30 );
            text.setCompoundDrawables( img, null, null, null );
        } else {
            text.setText(items.get(position));
        }
        return convertView;
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public Object getItem(int position) {
        return items.get(position);
    }

    @Override
    public int getCount() {
        return items.size();
    }

    public View getDropDownView(int position, View convertView,
            ViewGroup parent) {
        if (convertView == null) {
            convertView = mInflator.inflate(R.layout.spinner_item, null);
        }
        text = (TextView) convertView.findViewById(R.id.spinnerTarget);
        text.setSingleLine(true);
        text.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                selected = true;
                ((BaseAdapter) YearsSpinnerAdapter).notifyDataSetChanged();
                return false;
            }
        });
        text.setText(items.get(position));
        return convertView;
    };
};