app/src/main/java/com/duqing/missions/MainActivity.java | ●●●●● patch | view | raw | blame | history | |
app/src/main/java/com/duqing/missions/base/BaseActivity.java | ●●●●● patch | view | raw | blame | history | |
app/src/main/java/com/duqing/missions/ui/home/HomeFragment.java | ●●●●● patch | view | raw | blame | history | |
app/src/main/java/com/duqing/missions/ui/notifications/NotificationsFragment.java | ●●●●● patch | view | raw | blame | history |
app/src/main/java/com/duqing/missions/MainActivity.java
@@ -1,26 +1,24 @@ package com.duqing.missions; import android.os.Bundle; import com.google.android.material.bottomnavigation.BottomNavigationView; import androidx.appcompat.app.AppCompatActivity; import androidx.navigation.NavController; import androidx.navigation.Navigation; import androidx.navigation.ui.AppBarConfiguration; import androidx.navigation.ui.NavigationUI; import com.duqing.missions.base.BaseActivity; import com.duqing.missions.databinding.ActivityMainBinding; import com.google.android.material.bottomnavigation.BottomNavigationView; public class MainActivity extends AppCompatActivity { public class MainActivity extends BaseActivity<ActivityMainBinding> { private ActivityMainBinding binding; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); binding = ActivityMainBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); BottomNavigationView navView = findViewById(R.id.nav_view); BottomNavigationView navView = binding.navView; // Passing each menu ID as a set of Ids because each // menu should be considered as top level destinations. AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder( app/src/main/java/com/duqing/missions/base/BaseActivity.java
New file @@ -0,0 +1,34 @@ package com.duqing.missions.base; import android.os.Bundle; import android.view.LayoutInflater; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import androidx.viewbinding.ViewBinding; import java.lang.reflect.Method; import java.lang.reflect.ParameterizedType; /** * Created by Administrator on 2021/10/27 0027. */ public abstract class BaseActivity<B extends ViewBinding> extends AppCompatActivity { protected B binding; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); // get genericity "B" Class<B> entityClass = (Class<B>) ((ParameterizedType) this.getClass().getGenericSuperclass()).getActualTypeArguments()[0]; try { Method method = entityClass.getMethod("inflate", LayoutInflater.class);//get method from name "inflate"; binding = (B) method.invoke(entityClass,getLayoutInflater());//execute method to create a objct of viewbind; } catch (Exception e) { e.printStackTrace(); } setContentView(binding.getRoot()); } } app/src/main/java/com/duqing/missions/ui/home/HomeFragment.java
@@ -16,7 +16,6 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.duqing.missions.R; import com.duqing.missions.databinding.FragmentHomeBinding; import com.scwang.smart.refresh.header.ClassicsHeader; import com.scwang.smart.refresh.layout.SmartRefreshLayout; app/src/main/java/com/duqing/missions/ui/notifications/NotificationsFragment.java
@@ -4,41 +4,36 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; import com.duqing.missions.R; import com.duqing.missions.databinding.FragmentNotificationsBinding; public class NotificationsFragment extends Fragment { private NotificationsViewModel notificationsViewModel; private FragmentNotificationsBinding binding; private FragmentNotificationsBinding binding; public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { notificationsViewModel = new ViewModelProvider(this).get(NotificationsViewModel.class); binding = FragmentNotificationsBinding.inflate(inflater, container, false); View root = binding.getRoot(); final TextView textView = binding.textNotifications; public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { notificationsViewModel = new ViewModelProvider(this).get(NotificationsViewModel.class); binding = FragmentNotificationsBinding.inflate(inflater, container, false); View root = binding.getRoot(); notificationsViewModel.getText().observe(getViewLifecycleOwner(), new Observer<String>() { @Override public void onChanged(@Nullable String s) { textView.setText(s); } }); return root; } @Override @Override public void onDestroyView() { super.onDestroyView(); binding = null; } }