欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android ActionBar制作时钟实例解析

程序员文章站 2024-03-01 08:26:52
本文实例为大家分享了android actionbar制作时钟的具体代码,供大家参考,具体内容如下 1. mainactivity.java  ...

本文实例为大家分享了android actionbar制作时钟的具体代码,供大家参考,具体内容如下

1. mainactivity.java  

package com.example.days19actionbar07custom;
 
import com.example.days19actionbar07custom.r;
 
import android.app.activity;
import android.os.bundle;
import android.view.menu;
import android.view.menuitem;
import android.view.menuitem.onactionexpandlistener;
import android.view.view;
import android.widget.analogclock;
import android.widget.searchview;
import android.widget.searchview.onquerytextlistener;
import android.widget.textview;
 
public class mainactivity extends activity {
 
  private textview txtresult = null;
 
  @override
  protected void oncreate(bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.activity_main);
 
    txtresult = (textview) findviewbyid(r.id.txtresult);
  }
 
  @override
  public boolean oncreateoptionsmenu(menu menu) {
    getmenuinflater().inflate(r.menu.main, menu);
 
     
    /**************searchview*****************/
    // 通过id找到相对应的menuitem(searchview)
    menuitem searchitem = menu.finditem(r.id.action_search);
 
    searchview view = (searchview) searchitem.getactionview();
 
    // 给searchview设置文字改变的监听
    view.setonquerytextlistener(new onquerytextlistener() {
 
      @override
      public boolean onquerytextsubmit(string query) {
        return false;
      }
 
      @override
      public boolean onquerytextchange(string newtext) {
        txtresult.settext("您正在搜索" + newtext);
        return false;
      }
    });
     
    /**************自定义条目*****************/
     
    // 通过id找到自定义布局menuitem
    menuitem customitem = menu.finditem(r.id.action_custom_layout);
     
    // 通过menuitem的getactionview()方法得到一个view对象
    view v = customitem.getactionview();
     
    // 可以通过v的findviewbyid()方法找到自定义布局中的相对应的控件
    analogclock acclock = (analogclock) v.findviewbyid(r.id.acclock);
     
    // 给customitem菜单条目设置展开折叠监听
    customitem.setonactionexpandlistener(new onactionexpandlistener() {
       
      /**
       * 菜单条目被展开
       * 返回为true代表该条目菜单可以被展开
       * @override
       */
      public boolean onmenuitemactionexpand(menuitem item) {
        txtresult.settext("时钟被展开");
        return true;
      }
       
      /**
       * 菜单条目被折叠
       * 返回为true代表该条目菜单可以被折叠
       * @override
       */
      public boolean onmenuitemactioncollapse(menuitem item) {
        txtresult.settext("时钟被折叠");
        return true;
      }
    });
    return true;
  }
 
}

2. main.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
 
  <item
    android:id="@+id/action_search"
    android:orderincategory="100"
    android:actionviewclass="android.widget.searchview"
    android:showasaction="always"
    android:title="@string/it_search"/>
 
  <item
    android:id="@+id/action_custom_layout"
    android:actionlayout="@layout/my_layout"
    android:orderincategory="100"
    android:icon="@drawable/ic_launcher"
    android:showasaction="always|collapseactionview"
    android:title="layout"/>
 
</menu>

3. activity_main.xml 

<relativelayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:paddingbottom="@dimen/activity_vertical_margin"
  android:paddingleft="@dimen/activity_horizontal_margin"
  android:paddingright="@dimen/activity_horizontal_margin"
  android:paddingtop="@dimen/activity_vertical_margin"
  tools:context=".mainactivity" >
 
  <textview
    android:id="@+id/txtresult"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world" />
 
</relativelayout>


4. my_layout.xml

<relativelayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:paddingbottom="@dimen/activity_vertical_margin"
  android:paddingleft="@dimen/activity_horizontal_margin"
  android:paddingright="@dimen/activity_horizontal_margin"
  android:paddingtop="@dimen/activity_vertical_margin"
  tools:context=".mainactivity" >
 
  <analogclock
    android:id="@+id/acclock"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world" />
 
</relativelayout>

文章后还为大家分享了android actionbar使用教程,大家可以进行参考学习。

以上就是本文的全部内容,希望对大家学习android软件编程有所帮助。