您的位置:首页 > 移动开发 > Android开发

【Android】对话框之进度条

2013-11-07 15:35 148 查看
1.最原始的进度条的实现:

这种只是单纯让用户等待而不显示任何信息。

button.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//ProgressDialog.show(MainActivity.this, "提示", "正在加载请稍候....");
ProgressDialog dialog = new ProgressDialog(MainActivity.this);
dialog.setTitle("提示");
dialog.setMessage("正在加载,请稍后。。。");
dialog.show();  //显示对话框
//dialog.dismiss();   //结合线程或者消息使用
}
});


2.下载进度条

button2.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//第一种方式
//ProgressDialog dialog = new ProgressDialog(MainActivity.this,ProgressDialog.STYLE_HORIZONTAL);
//第二种方式
ProgressDialog dialog = new ProgressDialog(MainActivity.this);
dialog.setTitle("下载提示");
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
dialog.setCancelable(false);  //使它无法被取消
dialog.show();

dialog.setProgress(50);//放在show的后面,在线程中使用
}
});


3.自定义进度条

自定义一个类:

package com.example.android_progress;

import android.app.Dialog;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

public class DialogSignin extends Dialog {

private Context context;

public DialogSignin(Context context) {
// TODO Auto-generated constructor stub
super(context);
this.context = context;
initDialog();
}
public void initDialog(){
View view = LayoutInflater.from(context).inflate(R.layout.dialog_signin, null);
//两种方式
//setContentView(view);
setContentView(R.layout.dialog_signin);

setTitle("自定义对话框");
TextView textView = (TextView)view.findViewById(R.id.username);
textView.setText("zhangsan");
ImageView imageView = (ImageView)view.findViewById(R.id.image);
imageView.setImageResource(R.drawable.ic_launcher);
}

}


添加一个布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="64dp"
android:scaleType="center"
android:background="#FFFFBB33"
android:contentDescription="@string/app_name" />
<EditText
android:id="@+id/username"
android:inputType="textEmailAddress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:layout_marginBottom="4dp"
android:hint="Username" />
<EditText
android:id="@+id/password"
android:inputType="textPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:layout_marginBottom="16dp"
android:fontFamily="sans-serif"
android:hint="Password"/>
</LinearLayout>


在Main中加入:

button3.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
DialogSignin dialog = new DialogSignin(MainActivity.this);
dialog.show();
}
});


在定义类的时候可以不去继承Dialog,而是内部持有一个Dialog的引用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  对话框 android