针对“Android 开发使用Activity实现加载等待界面功能示例”的完整攻略,我将分以下几个步骤进行详细讲解:
- 创建等待界面布局文件
- 创建等待界面Activity并绑定布局文件
- 在需要创建等待界面的Activity中调用等待界面Activity
- 通过Handler消息机制关闭等待界面Activity
下面我将分别对以上几个步骤进行具体讲解。
1. 创建等待界面布局文件
首先我们需要在res/layout目录下创建一个XML布局文件,命名为loading.xml
,在这个文件中添加一个ProgressBar控件,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<ProgressBar xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/loading_progressbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
2. 创建等待界面Activity并绑定布局文件
创建LoadingActivity,这个Activity是用来显示加载等待的界面。代码如下:
public class LoadingActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.loading);//布局文件
}
}
3. 在需要创建等待界面的Activity中调用等待界面Activity
我们需要在需要创建等待界面的Activity中调用等待界面LoadingActivity,通常建议在异步操作或网络请求之前显示LoadingActivity。代码如下:
public class MainActivity extends Activity {
private ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建一个LoadingActivity
Intent intent = new Intent(this, LoadingActivity.class);
startActivity(intent);
// 模拟一个异步操作
new Thread(new Runnable() {
@Override
public void run() {
try {
// 延迟1秒
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
// 关闭LoadingActivity,可以通过Handler机制来关闭
mHandler.sendEmptyMessage(0);
}
}).start();
}
// 定义一个Handler对象,用来关闭LoadingActivity
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
// 关闭LoadingActivity
if (!isFinishing()) {
finish();
}
}
};
}
4. 通过Handler消息机制关闭等待界面Activity
我们通过Handler机制来关闭LoadingActivity,这样可以保证在异步操作执行完毕后及时关闭LoadingActivity。代码如下:
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
// 关闭LoadingActivity
if (!isFinishing()) {
finish();
}
}
};
实现方式有很多,可以根据项目需要自行调整。
针对第3步中,在需要创建等待界面的Activity中调用等待界面LoadingActivity的实现方式,我们还可以使用ProgressDialog来实现,代码如下:
public class MainActivity extends Activity {
private ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建一个ProgressDialog
progressDialog = new ProgressDialog(this);
progressDialog.setMessage("加载中,请稍后...");
progressDialog.setCancelable(false);
// 显示ProgressDialog
progressDialog.show();
// 模拟一个异步操作
new Thread(new Runnable() {
@Override
public void run() {
try {
// 延迟1秒
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
// 关闭ProgressDialog
mHandler.sendEmptyMessage(0);
}
}).start();
}
// 定义一个Handler对象,用来关闭ProgressDialog
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
// 关闭ProgressDialog
progressDialog.dismiss();
}
};
}
以上就是关于“Android 开发使用Activity实现加载等待界面功能示例”的完整攻略说明,希望能够对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android 开发使用Activity实现加载等待界面功能示例 - Python技术站