import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
public abstract class BaseActivity extends AppCompatActivity implements View.OnClickListener{
private String TAG = BaseActivity.class.getSimpleName();
private int REQUEST_CODE = 1234;
private String[] permissions = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.INTERNET,
Manifest.permission.ACCESS_WIFI_STATE,
Manifest.permission.CHANGE_WIFI_STATE,
Manifest.permission.ACCESS_NETWORK_STATE,
Manifest.permission.CHANGE_NETWORK_STATE,
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS,
Manifest.permission.WRITE_EXTERNAL_STORAGE};
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
&& checkSelfPermission(permissions[0]) != PackageManager.PERMISSION_GRANTED
&& checkSelfPermission(permissions[1]) != PackageManager.PERMISSION_GRANTED) {
requestPermission();
}
setContentView(getLayoutId());
}
public abstract int getLayoutId();
private void requestPermission() {
requestPermission(permissions);
}
protected void requestPermission(String[] permissions) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(permissions, REQUEST_CODE);
}
}
protected void initViewsWithClick(int...viewIds) {
for (int viewId : viewIds){
(getView(viewId)).setOnClickListener(this);
}
}
@Override
public void onClick(View v) {
onViewClick(v);
}
protected void showToast(String msg) {
if (TextUtils.isEmpty(msg)) {
return;
}
Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
}
protected <T extends View> T getView(int viewId) {
return (T) findViewById(viewId);
}
public abstract void onViewClick(View view);
}
网友评论