Android 从菜单中激活片段内部动画的倒计时

Android 从菜单中激活片段内部动画的倒计时,android,menu,android-activity,android-viewpager,fragment,Android,Menu,Android Activity,Android Viewpager,Fragment,我有一个视图寻呼机,其中包含2个片段,其中有几个需要设置动画的仪表。 我想从应用程序Actionbar菜单打开或关闭这些仪表动画的倒计时 附件是我的代码: 来自FragmentActivity的菜单项: @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); demoItem = menu.findItem(R.id.menu

我有一个视图寻呼机,其中包含2个片段,其中有几个需要设置动画的仪表。 我想从应用程序Actionbar菜单打开或关闭这些仪表动画的倒计时

附件是我的代码:

来自FragmentActivity的菜单项:

@Override
public boolean onCreateOptionsMenu(Menu menu)
  {
    getMenuInflater().inflate(R.menu.main, menu);
    demoItem = menu.findItem(R.id.menu_demo);
    demoItem.setChecked(false);

    return true;
  }

@Override
public boolean onOptionsItemSelected(MenuItem item)
  {

    switch (item.getItemId())
      {
      case R.id.menu_enabler:
        Intent enablerIntent = new Intent();
        PackageManager manager = getPackageManager();
        try
          {
            enablerIntent = manager
                .getLaunchIntentForPackage("com.openxc.enabler");
            enablerIntent.addCategory(Intent.CATEGORY_LAUNCHER);
            startActivity(enablerIntent);
          }
        catch (Exception e)
          {
            String packageName = OPENXC_ENABLER;
            Uri uri = Uri.parse("market://details?id=" + packageName);
            Intent intent = new Intent(Intent.ACTION_VIEW, uri);
            startActivity(intent);
          }
        break;

      case R.id.menu_demo:
        if (demoItem.isChecked())
          {

            demoItem.setChecked(false);
            // onDemoActivated.activateDemo(false);
          }
        else
          {
            demoItem.setChecked(true);
            // onDemoActivated.activateDemo(true);
          }
        break;
      case R.id.menu_settings:

        break;
      case R.id.menu_app_info:

        break;
      default:
        break;
      }
    return false;
  }
}

我为片段设置动画的片段:

public class FragmentGaugeCartoon extends Fragment {
public static final String ARG_OBJECT = "object";
public static final String TAG = "GaugeCartoon";
private Context context;
private final Random RAND = new Random();
private GaugeView gauge1;
private GaugeView gauge2;
private GaugeView gauge3;

// getter for returning fragment instance
public static FragmentGaugeCartoon getInstance() {
return new FragmentGaugeCartoon();
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {
// The last two arguments ensure LayoutParams are inflated
// properly.
View rootView = inflater.inflate(R.layout.fragment_gauge_cartoon,
    container, false);
gauge1 = (GaugeView) rootView.findViewById(R.id.gauge_view1);
gauge2 = (GaugeView) rootView.findViewById(R.id.gauge_view2);
gauge3 = (GaugeView) rootView.findViewById(R.id.gauge_view3);

gaugeTimer.start();
return rootView;
  }

   // dountdown timer for the demo
  private final CountDownTimer gaugeTimer = new CountDownTimer(30000, 2000) {
@Override
public void onTick(long arg0) {
    gauge1.setTargetValue(RAND.nextInt(101));
    gauge2.setTargetValue(RAND.nextInt(201));
    gauge3.setTargetValue(RAND.nextInt(2000));
}

@Override
public void onFinish() {
    gaugeTimer.start();
}
   };

  @Override
   public void onResume() {
super.onResume();

}

@Override
  public void onPause() {
super.onPause();

 }

   @Override
   public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {

} else {
}
   }
  }

已解决。我实现了一个随机数选择器。

无需担心。我用每个片段的开关解决了这个问题。