【发布时间】:2021-06-20 05:33:33
【问题描述】:
您好,我最近才开始使用 Room DataBase,我正在观看的课程建议使用 Utils/helper 类进行所有数据库操作,但我从未被教导如何将所有 utils 静态方法正确转换为 Asynctasks在房间数据库中使用,所以我想知道是否有人对如何实现这一点有建议。干杯
(下面是我正在使用的 Utils 和 mainFragment
package maddo.com.aquariumfish.MainFragment;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import java.util.ArrayList;
import maddo.com.aquariumfish.Adaptors.FishAdaptor;
import maddo.com.aquariumfish.Daos.FishDao;
import maddo.com.aquariumfish.DataBases.FishDataBase;
import maddo.com.aquariumfish.FavouriteFishActivity;
import maddo.com.aquariumfish.Models.Fish;
import maddo.com.aquariumfish.R;
import maddo.com.aquariumfish.SearchActivity;
import maddo.com.aquariumfish.Utils;
public class MainFragment extends Fragment {
private RecyclerView MainRecView;
private FishAdaptor fishAdaptor;
private BottomNavigationView bottomNavigationView;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frangment_main,container,false);
initView(view);
initBottomNavView();
initRecView();
return view;
}
@Override
public void onResume() {
super.onResume();
initRecView();
}
private void initRecView(){
fishAdaptor = new FishAdaptor(getActivity());
MainRecView.setAdapter(fishAdaptor);
MainRecView.setLayoutManager(new GridLayoutManager(getActivity(), 2));
ArrayList<Fish> fish = Utils.getAllFish(getActivity());
if(null!= fish){
fishAdaptor.setFish(fish);
}
}
private void initBottomNavView() {
bottomNavigationView.setSelectedItemId(R.id.bottomHome);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.bottomHome:
break;
case R.id.bottomFavFish:
Intent FavIntent = new Intent(getActivity(), FavouriteFishActivity.class);
FavIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(FavIntent);
break;
case R.id.search:
Intent SearchIntent = new Intent(getActivity(), SearchActivity.class);
SearchIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(SearchIntent);
break;
default:
break;
}
return false;
}
});
}
private void initView(View view) {
MainRecView = view.findViewById(R.id.mainRecView);
bottomNavigationView =view.findViewById(R.id.MainbottomNavView);
}
}
【问题讨论】:
标签: android android-studio android-asynctask android-room helper