Android编程之简单计时器实现方法

前端技术 2023/09/06 Android

本文实例讲述了Android编程之简单计时器实现方法。分享给大家供大家参考,具体如下:

这里利用ContextMenu(上下文菜单),Chronometer实现简单计数器。

Main.xml:

<?xml version=\"1.0\" encoding=\"utf-8\"?>
<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"
android:orientation=\"vertical\"
android:layout_width= \"fill_parent\"
android:layout_height = \"fill_parent\"
android:gravity = \"center_horizontal\"
>
<Chronometer
android:id =\"@+id/chronometer\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:format=\"%s\"
android:textSize=\"80px\"
android:textColor=\"#00FF00\"
/>
</LinearLayout >

/layout/menu/context_menu.xml

<?xml version=\"1.0\" encoding=\"utf-8\"?>
<menu xmlns:android=\"http://schemas.android.com/apk/res/android\">
  <item android:id=\"@+id/timer_start\" android:title=\" 开始计时 \" />
  <item android:id=\"@+id/timer_stop\" android:title=\" 终止计时 \" />
  <item android:id=\"@+id/timer_reset\" android:title=\" 清零 \" />
</menu>

主Activity:

public class MainActivity extends Activity {
  private Chronometer timer;
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    // 获得计时器对象
    timer = (Chronometer)this.findViewById(R.id.chronometer);
    //长按计时器时,出现上下文菜单
    this.registerForContextMenu(timer);
  }
  //创建上下文菜单
  @Override
  public void onCreateContextMenu(ContextMenu menu, View v,
      ContextMenuInfo menuInfo)
  {
    super.onCreateContextMenu(menu, v, menuInfo);
    // ContextMenu的Item不支持Icon,所以不用再资源文件中,为它们设定图标
    if (v.getId() == R.id.chronometer)
    {
      //加载xml菜单布局文件
      this.getMenuInflater().inflate(R.menu.context_menu, menu);
      // 设定头部图标
      menu.setHeaderIcon(R.drawable.icon);
      // 设定头部标题
      menu.setHeaderTitle(\" 计时器控制选项 \");
    }
  }
  //选择菜单项后的响应
  @Override
  public boolean onContextItemSelected(MenuItem item)
  {
    switch (item.getItemId())
    {
    case R.id.timer_start:
      // 将计时器清零
      timer.setBase(SystemClock.elapsedRealtime());
      //开始计时
      timer.start();
      break;
    case R.id.timer_stop:
      //停止计时
      timer.stop();
      break;
    case R.id.timer_reset:
      //将计时器清零
      timer.setBase(SystemClock.elapsedRealtime());
      break;
    }
    return super.onContextItemSelected(item);
  }
}

运行结果如图所示:

长按计时器弹出上下文菜单选择开始计时:

希望本文所述对大家Android程序设计有所帮助。

本文地址:https://www.stayed.cn/item/14901

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。