`

自定义android Intent Action与继承TextView形成一个动态改变text的View

阅读更多
//Activity
package com.android.Somejavaknowledget;

import java.util.Date;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class Somejavaknowledget extends Activity {
/** Called when the activity is first created. */
public static final String MyAction="Customized-Action-ChangeText";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/*requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);*/
//客制化Title
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

setContentView(R.layout.main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_gallery_title);
TextView tv = (TextView)getWindow().findViewById(R.id.left_text);
tv.setText("hello");


DateView dv= (DateView)findViewById(R.id.tv);
dv.setUpdates(true);
Button btn = (Button) getWindow().findViewById(
R.id.close);
btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
System.out.println("finish this activity");
finish();

}
});
Button show = (Button)findViewById(R.id.change);
show.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
//自定义的Action
Intent intent= new Intent();
intent.setAction(MyAction);
sendBroadcast(intent);


}
});



}
}


//DateView 继承TextView 通过reciver broadcast 动态改变text

package com.android.Somejavaknowledget;



import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.util.AttributeSet;
import android.util.Log;
import android.widget.TextView;
import android.view.MotionEvent;

import java.text.DateFormat;
import java.util.Date;
import java.util.Formatter;

public final class DateView extends TextView {
    private static final String TAG = "DateView";

    private boolean mUpdating = false;
    private Context mContext;
    private static int count=1;
  

    private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
         /*   if (action.equals(Intent.ACTION_TIME_TICK)
                    || action.equals(Intent.ACTION_TIMEZONE_CHANGED)) {
                updateClock();
            }*/
            if(action.equalsIgnoreCase(Somejavaknowledget.MyAction)){
            updateClock();
            }
        }

    };

    public DateView(Context context, AttributeSet attrs) {
        super(context, attrs);
        mContext=context;
    }

    @Override
    protected void onAttachedToWindow() {
        super.onAttachedToWindow();
    }
   
    @Override
    protected void onDetachedFromWindow() {
        super.onDetachedFromWindow();
        setUpdates(false);
    }

    @Override
    protected int getSuggestedMinimumWidth() {
        // makes the large background bitmap not force us to full width
        return 0;
    }

    private final void updateClock() {
        //Date now = new Date();
        //setText(DateFormat.getDateInstance(DateFormat.LONG).format(now));
    String s=String.format("count=%d", count);
    setText(s);
    count++;
    }

    void setUpdates(boolean update) {
        if (update != mUpdating) {
            mUpdating = update;
            if (update) {
                // Register for Intent broadcasts for the clock and battery
                IntentFilter filter = new IntentFilter();
                /*filter.addAction(Intent.ACTION_TIME_TICK);
                filter.addAction(Intent.ACTION_TIMEZONE_CHANGED);*/
               filter.addAction(Somejavaknowledget.MyAction);
                mContext.registerReceiver(mIntentReceiver, filter, null, null);

                updateClock();
            } else {
                mContext.unregisterReceiver(mIntentReceiver);
            }
        }
    }
}







分享到:
评论

相关推荐

    新版Android开发教程.rar

    Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。 Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 ...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    Google Android SDK开发范例大全(完整版)共4个分卷 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    Google Android SDK开发范例大全(完整版)共4个分卷 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    Google Android SDK开发范例大全(完整版)共4个分卷 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1...

    谈谈Android里的Context的使用

    <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> 为了让大家更容易理解,写了一个...

    android开发使用例子

    Intent it = new Intent(Intent.ACTION_VIEW, uri); startActivity(it); //where pkg_name is the full package path for an application //进入联系人页面 Intent intent = new Intent(); intent.setAction...

    Google Android SDK开发范例大全的目录

    2.2 建立第一个Android项目(HelloAndroid!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 ...

    Google Android SDK开发范例大全(完整版附部分源码).pdf

    2.2 建立第一个Android项目(HelloAndroid!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的...

    Google+Android+SDK开发范例大全

    1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1 安装AndroidSDK与ADTplug-in 2.2 建立第一个Android项目(HelloAndroid!...

    Google Android SDK 开发范例大全01

    2.2 建立第一个Android项目(HelloAndroid!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 ...

    Google Android SDK 开发范例大全02

    2.2 建立第一个Android项目(HelloAndroid!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 ...

    Google Android sdk 开发范例大全 部分章节代码

    2.2 建立第一个Android项目(HelloAndroid!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 ...

    Google Android SDK开发范例大全(完整版)

    2.2 建立第一个Android项目(HelloAndroid!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 ...

    应用启动页自定义跳转计时器View Demo

    应用启动页自定义跳转计时器View Demo: CircleTextProgressbar.java: package com.demo.startpageskiptimerdemo.widget; import android.content.Context; import android.content.res.ColorStateList; import ...

    Android 上应用Googlemap

    <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <uses-sdk android:minSdkVersion="3" /> </manifest>

    Android入门到精通源代码.

    7.2.1 Action Intent 7.2.2 Broadcast Intent 7.3 解析Intent的实现 7.3.1 Intent Receiver 7.3.2 Intent Filter 7.4 设置Activity许可 7.5 应用实例详解:电话拨号程序 7.5.1 实例分析 7.5.2 实例实现 第8章 ...

Global site tag (gtag.js) - Google Analytics