Commit 3e7cdedb by 段启岩

添加BaseActivity和BaseFragment

parent 1c2597cf
package cn.yunliyunwai.beyondclouds;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.MenuItem;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;
import androidx.lifecycle.ViewModelProvider;
import android.os.Bundle;
import android.view.MenuItem;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import java.util.ArrayList;
import java.util.List;
import cn.yunliyunwai.beyondclouds.base.BaseActivity;
import cn.yunliyunwai.beyondclouds.databinding.ActivityMainBinding;
import cn.yunliyunwai.beyondclouds.ui.DynamicFragment;
import cn.yunliyunwai.beyondclouds.ui.HomeFragment;
......@@ -21,30 +22,30 @@ import cn.yunliyunwai.beyondclouds.ui.MyFragment;
import cn.yunliyunwai.beyondclouds.ui.ProjectFragment;
import cn.yunliyunwai.beyondclouds.ui.QAFragment;
import cn.yunliyunwai.beyondclouds.util.StatusBarUtils;
import cn.yunliyunwai.beyondclouds.viewmodel.MainViewModel;
public class MainActivity extends AppCompatActivity implements BottomNavigationView.OnNavigationItemSelectedListener {
public class MainActivity extends BaseActivity<ActivityMainBinding> implements BottomNavigationView.OnNavigationItemSelectedListener {
private List<Fragment> fragments;
private MainViewModel mainViewModel;
private ActivityMainBinding binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
StatusBarUtils.setWindowStatusBarColor(this, R.color.colorStatusBar);
super.onCreate(savedInstanceState);
binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
mainViewModel = new ViewModelProvider(this, MainViewModel.factory).get(MainViewModel.class);
initBottomNavigation(savedInstanceState);
}
@Override
protected ActivityMainBinding initDataBinding(LayoutInflater inflater) {
return ActivityMainBinding.inflate(inflater);
}
private void initBottomNavigation(Bundle savedInstanceState) {
fragments = new ArrayList<>(5);
fragments.add(new HomeFragment());
......
package cn.yunliyunwai.beyondclouds.base;
import android.os.Bundle;
import android.view.LayoutInflater;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewbinding.ViewBinding;
public abstract class BaseActivity<B extends ViewBinding> extends AppCompatActivity {
protected B binding;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = initDataBinding(getLayoutInflater());
setContentView(binding.getRoot());
}
/**
* 初始化dataBinding
* @return
*/
protected abstract B initDataBinding(LayoutInflater inflater);
}
package cn.yunliyunwai.beyondclouds.base;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.viewbinding.ViewBinding;
public abstract class BaseFragment<B extends ViewBinding> extends Fragment {
protected B binding;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
binding = initDataBinding(inflater, container);
return binding.getRoot();
}
/**
* 初始化dataBinding
* @return
*/
protected abstract B initDataBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container);
}
......@@ -7,23 +7,21 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import cn.yunliyunwai.beyondclouds.base.BaseFragment;
import cn.yunliyunwai.beyondclouds.databinding.FragmentDynamicBinding;
public class DynamicFragment extends Fragment {
private FragmentDynamicBinding binding;
public class DynamicFragment extends BaseFragment<FragmentDynamicBinding> {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
binding = FragmentDynamicBinding.inflate(inflater, container, false);
return binding.getRoot();
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
}
@Override
protected FragmentDynamicBinding initDataBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container) {
return FragmentDynamicBinding.inflate(inflater, container, false);
}
}
......@@ -20,20 +20,19 @@ import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerInd
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerTitleView;
import cn.yunliyunwai.beyondclouds.R;
import cn.yunliyunwai.beyondclouds.base.BaseFragment;
import cn.yunliyunwai.beyondclouds.components.CommonPagerIndicator;
import cn.yunliyunwai.beyondclouds.components.ScaleTransitionPagerTitleView;
import cn.yunliyunwai.beyondclouds.databinding.FragmentCategoryBinding;
import cn.yunliyunwai.beyondclouds.databinding.FragmentHomeBinding;
import cn.yunliyunwai.beyondclouds.viewmodel.HomeFragmentViewModel;
public class HomeFragment extends Fragment {
public class HomeFragment extends BaseFragment<FragmentHomeBinding> {
private HomeFragmentViewModel homeFragmentViewModel = null;
private FragmentHomeBinding binding;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
binding = FragmentHomeBinding.inflate(inflater, container, false);
return binding.getRoot();
protected FragmentHomeBinding initDataBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container) {
return FragmentHomeBinding.inflate(inflater, container, false);
}
@Override
......
......@@ -7,23 +7,22 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import cn.yunliyunwai.beyondclouds.base.BaseFragment;
import cn.yunliyunwai.beyondclouds.databinding.FragmentMyBinding;
public class MyFragment extends Fragment {
private FragmentMyBinding binding;
public class MyFragment extends BaseFragment<FragmentMyBinding> {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
binding = FragmentMyBinding.inflate(inflater, container, false);
return binding.getRoot();
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
}
@Override
protected FragmentMyBinding initDataBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container) {
return FragmentMyBinding.inflate(inflater, container, false);
}
}
......@@ -7,19 +7,16 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import cn.yunliyunwai.beyondclouds.base.BaseFragment;
import cn.yunliyunwai.beyondclouds.databinding.FragmentProjectBinding;
public class ProjectFragment extends Fragment {
private FragmentProjectBinding binding;
public class ProjectFragment extends BaseFragment<FragmentProjectBinding> {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
binding = FragmentProjectBinding.inflate(inflater, container, false);
return binding.getRoot();
protected FragmentProjectBinding initDataBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container) {
return FragmentProjectBinding.inflate(inflater, container, false);
}
@Override
......
......@@ -7,23 +7,20 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import cn.yunliyunwai.beyondclouds.base.BaseFragment;
import cn.yunliyunwai.beyondclouds.databinding.FragmentQaBinding;
public class QAFragment extends Fragment {
private FragmentQaBinding binding;
public class QAFragment extends BaseFragment<FragmentQaBinding> {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
binding = FragmentQaBinding.inflate(inflater, container, false);
return binding.getRoot();
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
protected FragmentQaBinding initDataBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container) {
return FragmentQaBinding.inflate(inflater, container, false);
}
}
package cn.yunliyunwai.beyondclouds.ui;
package cn.yunliyunwai.beyondclouds.viewmodel;
import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
......
package cn.yunliyunwai.beyondclouds;
package cn.yunliyunwai.beyondclouds.viewmodel;
import androidx.annotation.NonNull;
import androidx.lifecycle.ViewModel;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment