open class BaseActivity : AppCompatActivity() {
var toast: Toast? = null
lateinit var mContext: Context
var TAG:String = ""
var mLoading: Dialog? = null
var rate:String = ""
//网络错误重新加载的接口
lateinit var reloadInterface: ReloadInterface
fun setReloadInterface(reloadInterface:Any){
this.reloadInterface = reloadInterface as ReloadInterface
}
fun AliBaiChuanLogin(userId:String){
val alibcLogin = AlibcLogin.getInstance()
alibcLogin.showLogin(this@BaseActivity, object : AlibcLoginCallback {
override fun onSuccess() {
// Toast.makeText(this@LoginOathTaoBaoWebActivity, "登录成功 ",
// Toast.LENGTH_LONG).show()
//获取淘宝用户信息
Log.i("MainActivity", "获取淘宝用户信息: " + AlibcLogin.getInstance().session)
AlibcLogin.getInstance().session.nick
var intent = Intent(this@BaseActivity, LoginOathTaoBaoWebActivity::class.java)
intent.putExtra("userId",userId)
startActivity(intent)
// TaoBaoAuth()
// webView.reload()
}
override fun onFailure(code: Int, msg: String) {
Toast.makeText(this@BaseActivity, "登录失败 code="+code+"------>msg =" +msg,
Toast.LENGTH_LONG).show()
}
})
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
super.setContentView(R.layout.activity_base)
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); // 禁用横屏
mLoading = DialogUtils.createLoadingDialog(this)
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
rate = AppApplication.preferences!!.getString("rate","0.40")
// //透明导航栏
//// getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION)
//// StatusBarUtil.setStatusBarColor(this, Color.parseColor("#ffffff"), 0)
// //全屏
//// getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN ,
//// WindowManager.LayoutParams. FLAG_FULLSCREEN)
//// StatusBarUtil.setTranslucent(this,55)
// requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
ImmersionBar.with(this)
.statusBarDarkFont(true, 0.2f) //原理:如果当前设备支持状态栏字体变色,会设置状态栏字体为黑色,如果当前设备不支持状态栏字体变色,会使当前状态栏加上透明度,否则不执行透明度
.init()
//
mContext = this
TAG = mContext.javaClass.simpleName
AppApplication.instance.addActivity(this)
Glide.with(mContext!!).load(R.drawable.ic_loading).asGif().into(ivLoading)
}
override fun setContentView(layoutResID: Int) {
// super.setContentView(layoutResID)
val view = layoutInflater.inflate(layoutResID, null)
var lp:LinearLayout.LayoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT)
if (null != mRootBaseView) {
mRootBaseView!!.addView(view, lp)
}
// StatusBarUtil.setTransparent(this@BaseActivity)
// StatusBarUtil.setTranslucent(this@BaseActivity, 25)
}
/**
*
* @param titleBarIsShow titleBar是否显示
* @param tvLeftIsShow 返回键是否显示
* @param middleText 中间的文字
*/
fun initTitleBar(titleBarIsShow:Boolean,ivLeftIsShow:Boolean,middleText:String){
if (titleBarIsShow){
mTitle.visibility = View.VISIBLE
if (!ivLeftIsShow) {
ivBack.visibility = View.GONE;
} else {
ivBack.setOnClickListener {
finish()
}
}
tvTitle.text = middleText
}else{
mTitle.visibility = View.GONE
}
}
/**
* 切换页面的布局
* @param pageState 页面状态 NORMAL EMPTY ERROR
*/
fun changePageState(pageState: BaseActivity.PageState) {
when (pageState) {
BaseActivity.PageState.NORMAL -> if (mStateLayout.visibility === View.VISIBLE) {
mStateLayout.visibility = View.GONE
}
BaseActivity.PageState.ERROR -> if (mStateLayout.visibility === View.GONE) {
mStateLayout.visibility = View.VISIBLE
state_layout_error.visibility = View.VISIBLE
state_layout_error_bt.setOnClickListener { reloadInterface.reloadClickListener() }
state_layout_empty.visibility = View.GONE
state_layout_loading.visibility = View.GONE
}
BaseActivity.PageState.EMPTY -> if (mStateLayout.visibility === View.GONE) {
mStateLayout.visibility = View.VISIBLE
state_layout_error_bt.visibility = View.GONE
state_layout_empty.visibility = View.VISIBLE
state_layout_loading.visibility = View.GONE
}
}
}
override fun onResume() {
super.onResume()
MobclickAgent.onResume(this)
}
override fun onPause() {
super.onPause()
MobclickAgent.onPause(this)
}
enum class PageState {
/**
* 数据内容显示正常
*/
NORMAL,
/**
* 数据为空
*/
EMPTY,
/**
* 数据加载失败
*/
ERROR
}
fun showToast(content: String){
if (toast == null) {
toast = Toast.makeText(mContext,
content,
Toast.LENGTH_SHORT)
} else {
toast!!.setText(content)
}
toast!!.show()
}
}
Kotlin Activity封装的基类
最新推荐文章于 2025-07-18 19:31:28 发布