android baseactivity
时间: 2023-04-29 18:06:01 浏览: 54
android baseactivity是Android中的一个基类Activity,它允许开发者在其它Activity中使用相同的代码和逻辑。通常,开发者将其它Activity继承BaseActivity,这样它们就可以重写或覆盖BaseActivity中定义的方法以满足其特定的需求。BaseActivity还允许开发者在Activity的生命周期事件上执行自定义操作,例如管理Activity堆栈,执行动画等等。
相关问题
BaseActivity
`BaseActivity` 是 Android 开发中的一种设计模式,用于封装一些公共的 Activity 逻辑,以便在多个 Activity 中复用。
具体来说,`BaseActivity` 是一个抽象类,它继承自 Android 系统提供的 `Activity` 类。在 `BaseActivity` 中,开发者可以定义一些公共的方法、成员变量和生命周期回调方法,供子类继承和复用。
例如,假设我们在多个 Activity 中都需要显示一个 Loading 对话框,那么可以在 `BaseActivity` 中定义一个显示 Loading 对话框的方法:
```java
public abstract class BaseActivity extends Activity {
private ProgressDialog mProgressDialog;
protected void showLoadingDialog() {
if (mProgressDialog == null) {
mProgressDialog = new ProgressDialog(this);
mProgressDialog.setMessage("Loading...");
mProgressDialog.setCanceledOnTouchOutside(false);
}
mProgressDialog.show();
}
protected void hideLoadingDialog() {
if (mProgressDialog != null) {
mProgressDialog.dismiss();
}
}
}
```
在子类中,只需要调用 `showLoadingDialog()` 和 `hideLoadingDialog()` 方法即可显示和隐藏 Loading 对话框:
```java
public class MainActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
showLoadingDialog();
// do some time-consuming task
hideLoadingDialog();
}
}
```
这个代码会在 `MainActivity` 中显示一个 Loading 对话框,并在执行一些耗时任务后隐藏对话框。这样,开发者就可以在多个 Activity 中复用显示和隐藏 Loading 对话框的逻辑了。
可以帮我写一个功能齐全的android的baseActivity抽象类
当然可以,以下是一个基本的 Android BaseActivity 抽象类的代码:
```java
public abstract class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getLayoutResourceId());
initViews();
initData();
}
protected abstract int getLayoutResourceId();
protected abstract void initViews();
protected abstract void initData();
protected void showToast(String message) {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}
protected void startActivity(Class<?> cls) {
Intent intent = new Intent(this, cls);
startActivity(intent);
}
protected void startActivity(Class<?> cls, Bundle bundle) {
Intent intent = new Intent(this, cls);
intent.putExtras(bundle);
startActivity(intent);
}
protected void startActivityForResult(Class<?> cls, int requestCode) {
Intent intent = new Intent(this, cls);
startActivityForResult(intent, requestCode);
}
protected void startActivityForResult(Class<?> cls, int requestCode, Bundle bundle) {
Intent intent = new Intent(this, cls);
intent.putExtras(bundle);
startActivityForResult(intent, requestCode);
}
}
```
这个抽象类包含了常用的方法,如获取布局资源 ID、初始化视图、初始化数据、显示 Toast、启动 Activity 等。你可以在子类中继承这个 BaseActivity 类,然后实现自己的业务逻辑。