notification progress bar sample

编写一个Notification通知栏进度条,用于显示等待用户输入时的状态:在主界面上首先显示一个文本输入框,一旦用户要在其中输入文字内容,则显示一个Notification通知,当用户输入完成时,则告知已完成输入。

设置两个文本编辑框来接收参数
案例
结果

activity_main.layout:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    >
    <EditText
        android:id="@+id/tickerText_et"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="@string/edt1"
        />
    <EditText
        android:id="@+id/contentText_et"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="@string/edt2"
        />
    <Button
        android:id="@+id/notify_btn"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/btn"
        />
</LinearLayout>

Mainactivity.java

import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {

    private NotificationManager notifMgr = null;
    private Notification.Builder notifBuilder = null;
    private EditText etTickerText = null;
    private EditText etContentText = null;
    private Button btnNotify = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        notifMgr = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
        notifBuilder = new Notification.Builder(this);

        etTickerText = (EditText)findViewById(R.id.tickerText_et);
        etContentText = (EditText)findViewById(R.id.contentText_et);

        btnNotify = (Button)findViewById(R.id.notify_btn);

        btnNotify.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {

                int icon = R.mipmap.ic_launcher;
                CharSequence tickerText = etTickerText.getText().toString();

                long when = System.currentTimeMillis();
                String contentTitle = getString(R.string.app_name);
                String contentText = etContentText.getText().toString();

                notifBuilder.setSmallIcon(icon);
                notifBuilder.setTicker(tickerText);
                notifBuilder.setWhen(when);
                notifBuilder.setContentTitle(contentTitle);
                notifBuilder.setContentText(contentText);


                new Thread(new Runnable() {
                    @Override
                    public void run() {

                        for (int i = 0; i <= 100; i ++) {
                            notifBuilder.setProgress(100, i, false);
                            notifMgr.notify(R.string.app_name, notifBuilder.getNotification());
                            try {
                                Thread.sleep(100);
                            } catch (InterruptedException e) {

                            }
                        }

                        notifBuilder.setProgress(0, 0, false);
                        notifMgr.notify(R.string.app_name, notifBuilder.getNotification());
                    }
                }).start();
            }
        });
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值