Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
217 views
in Technique[技术] by (71.8m points)

java - Cannot convey value from Activity to Repository to pass it into Dao method

I have a vocabulary room-database where words are divided into 4 categories (indicated in respective field of the table).

When the Activity launches, the method getWords() from Dao is triggered with the required argument being passed by WorkActivity.

What should I write to handover the value of List from Activity to Repository?

In Dao:

@Query("SELECT * FROM word_table WHERE category IN(:filterCategory) ORDER BY RANDOM() LIMIT 4")
Single<List<Word>> get4words(List<Integer> filterCategory);

In Repository:

public class WordRepository {
    private ArrayList<Integer> categoryFilter;
    private WordDao mWordDao;   
    //other variables
    WordRepository(Application application) {
        WordDatabase db = WordDatabase.getDatabase(application);
        mWordDao = db.WordDao();
        categoryFilter = new ArrayList<>();
        m4words = mWordDao.get4words(categoryFilter);
    }
    
    

In ViewModel:

private ArrayList<Integer> categoryFilter = new ArrayList<>();
private WordRepository mRepository;
public WordViewModel(@NonNull Application application) {
    mRepository = new WordRepository(application);
    m4words = mRepository.get4words();
}

In WorkActivity:

private WordViewModel wordViewModel;
public ArrayList<Integer> categoryFilter = new ArrayList<>();
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    categoryFilter.add(2) // just for example, if I want to pass 2 to categoryFilter List in Reposotory.
    wordViewModel = new ViewModelProvider(this,
        ViewModelProvider.AndroidViewModelFactory.getInstance(this.getApplication()))
        .get(WordViewModel.class);
    wordViewModel.getListLivedata().observe(this, words -> {
        adapter.submitList(words);
    });
    //buildRecyclreVeiw
}
question from:https://stackoverflow.com/questions/65936607/cannot-convey-value-from-activity-to-repository-to-pass-it-into-dao-method

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...