Hier wird jetzt alles zusammen gebraucht.
Beispiel:
import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import java.util.List;
import java.util.Locale;
public class MainActivity extends AppCompatActivity {
private MainViewModel mViewModel;
private ArticleListAdapter adapter;
//Views
private EditText articleNr;
private EditText articleName;
private EditText articleQuantity;
//Recycler
RecyclerView articleList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
articleNr = findViewById(R.id.inputArticleNr);
articleName = findViewById(R.id.inputArticleName);
articleQuantity = findViewById(R.id.inputArticleQuantity);
//register Observer
//mViewModel = new ViewModelProvider(this).get(MainViewModel.class); mViewModel = new MainViewModel(getApplication());
mViewModel.getAllArticles().observe(this, articles -> {
adapter.setArticleList(articles);
System.out.println(articles.toString());
});
mViewModel.getSearchResults().observe(this,articles -> {
if (articles.size() > 0) {
articleNr.setText(String.format(Locale.GERMAN, "%d", articles.get(0).getId()));
articleName.setText(articles.get(0).getName());
articleQuantity.setText(String.format( Locale.GERMAN, "%d", articles.get(0).getQuantity()));
} else {
articleNr.setText("kein Treffer");
}
});
//Build-up Recycler View
articleList = findViewById(R.id.articleList);
articleList.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
adapter = new ArticleListAdapter(R.layout.article_list_item);
articleList.setAdapter(adapter);
}
public void addArticle(View v) {
String name = articleName.getText().toString();
String quantity = articleQuantity.getText().toString();
if (!name.equals("") && !quantity.equals("")) {
Article article = new Article(name, Integer.parseInt(quantity));
mViewModel.insertArticle(article);
clearFields();
} else {
articleNr.setText("Unvollständige Information");
}
}
public void findArticles(View view) {
mViewModel.findArticle(articleName.getText().toString());
}
public void deleteArticle(View view) {
mViewModel.deleteArticle(articleName.getText().toString());
clearFields();
}
public void clearFields() {
articleNr.setText("");
articleName.setText("");
articleQuantity.setText("");
}
}