编写一个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();
}
});
}
}