android(5) 等待窗口
来源:互联网 发布:非农数据在哪里看 编辑:程序博客网 时间:2024/04/28 10:13
一.等待窗口实现:
记录一下,有时候我们下载数据的时候为了提高用户的体验,加一个等待窗口还是有必要的,有两种等待窗口:
第一种旋转的ProgressBar:
主界面:
public class MainActivity extends Activity {private Button button1;private TextView textview1;public AlertDialog selfdialog;private MainActivity main; public Handler mhandler = new Handler() {public void handleMessage(Message msg) {switch (msg.what) {//显示TextViewcase 1:Toast.makeText(main, "成功", Toast.LENGTH_SHORT).show();textview1.setVisibility(View.VISIBLE);break;}super.handleMessage(msg);}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);main = this;button1 = (Button) findViewById(R.id.button1);textview1 = (TextView) findViewById(R.id.textview1);button1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View arg0) {showDialogLoading();}});} //等待dialogprivate void showDialogLoading() {LayoutInflater inflater = (LayoutInflater) this.getSystemService(this.LAYOUT_INFLATER_SERVICE);//viewView view = inflater.inflate(R.layout.footer, null);AlertDialog.Builder ad = new AlertDialog.Builder(this);selfdialog = ad.create();selfdialog.setView(view);//屏蔽掉点击selfdialog.setCancelable(false);selfdialog.show();new Thread() {@Overridepublic void run() {try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}Message message = new Message();message.what = 1;main.mhandler.sendMessage(message);//关闭dialogselfdialog.dismiss();}}.start();}}
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="点击我" /> <TextView android:id="@+id/textview1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="加载完成后显示我" android:visibility="gone" /></LinearLayout>
footer.xml:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="点击我" /> <TextView android:id="@+id/textview1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="加载完成后显示我" android:visibility="gone" /></LinearLayout>
这样第一种的等待窗就实现了。
第二种进度条式的等待窗:
主界面:
public class MainActivity extends Activity {private Button button1;private TextView textview1;private TextView textview2;public AlertDialog selfdialog;private MainActivity main; public Handler mhandler = new Handler() {public void handleMessage(Message msg) {switch (msg.what) {//显示TextViewcase 1:textview2.setText("正在下载("+msg.obj.toString()+"/10)");break;}super.handleMessage(msg);}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);main = this;button1 = (Button) findViewById(R.id.button1);textview1 = (TextView) findViewById(R.id.textview1);button1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View arg0) {showDialogLoading();}});} //等待dialogprivate void showDialogLoading() {LayoutInflater inflater = (LayoutInflater) this.getSystemService(this.LAYOUT_INFLATER_SERVICE);//viewView view = inflater.inflate(R.layout.footer, null);final ProgressBar progressbar1 = (ProgressBar)view.findViewById(R.id.progressbar1);textview2 = (TextView)view.findViewById(R.id.textview2);AlertDialog.Builder ad = new AlertDialog.Builder(this);selfdialog = ad.create();selfdialog.setView(view);//屏蔽掉点击selfdialog.setCancelable(false);selfdialog.show();new Thread() {@Overridepublic void run() {//getProgress()获得当前的进度值//incrementProgressBy()每次增加的量//getMax()获得这个进度条的范围的上限int max = progressbar1.getMax();int i = 0;while(true){ if(i > max){break;}try {Thread.sleep(1000);progressbar1.incrementProgressBy(1);Message message = new Message();message.what = 1;message.obj = progressbar1.getProgress();main.mhandler.sendMessage(message);i++;} catch (InterruptedException e) {e.printStackTrace();}}//关闭dialogselfdialog.dismiss();}}.start();}}
footer.xml:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center" > <ProgressBar android:id="@+id/progressbar1" style="?android:attr/progressBarStyleHorizontal" android:layout_width="200dip" android:layout_height="wrap_content" android:max="10" /> <TextView android:id="@+id/textview2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="正在下载(0/10)" android:textColor="@android:color/black" android:textSize="9sp" /></LinearLayout>
activity_main与上个例子布局一样。
0 0
- android(5) 等待窗口
- 窗口等待
- 等待提示窗口
- 等待提示窗口
- 等待提示窗口
- winform启动等待窗口
- 简单的等待窗口
- 等待窗口线程关闭
- 页面等待窗口
- 小东西WinForm的等待窗口
- C#_WinForm的等待窗口
- 窗口加载时等待动画
- Jquery ajax 请求等待窗口
- backgroundWorker 等待窗口的实现(loading窗口)
- 等待5
- 页面提交时出现等待窗口示例
- 制作一个简单的等待窗口
- 制作一个简单的等待窗口
- Android开发之Frame动画(帧动画)
- values-11,values-14文件夹报错
- 数据流图解析
- 这是什么东西?
- [Android基础知识] 之十一: View类的原理与使用
- android(5) 等待窗口
- PCIe驱动开发接口函数
- 第十一周项目四类族的设计(1)
- 常遇到的浏览器兼容性问题
- JAVA程序员发展路线
- 表单数据提交方式,及后台获取数据方式
- ios 是否安装某个应用
- 用CSS画三角形,纯CSS绘制三角形的代码
- 怎样打开64位 Ubuntu 的32位支持功能?