Итак, у меня есть действие под названием AddNewRecipe
. Эта работа должна состоять из 3 полей: Имя, Ингредиенты и Метод. В настоящее время я могу пройти только через поле «Имя» в основной активности. Я также мог бы отображать имя, ингредиенты и метод в представлении Recycler, которое у меня есть в настоящее время.
Вот изображение представления Recycler, которое у меня есть
Это код добавления активности
package uk.edu.le.co2103.myrecipebook;
public class AddRecipeActivity extends AppCompatActivity {
public static final String EXTRA_REPLY = "com.example.android.wordlistsql.REPLY";
ImageView imageView;
Button button;
private EditText mEditRecipeView;
private EditText mEditRecipeView2;
private EditText mEditRecipeView3;
private static final int PICK_IMAGE = 100;
Uri imageURI;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new_recipe);
mEditRecipeView = findViewById(R.id.edit_recipe1);
mEditRecipeView2 = findViewById(R.id.edit_recipe2);
mEditRecipeView3 = findViewById(R.id.edit_recipe3);
imageView = (ImageView)findViewById(R.id.image_view);
button = (Button)findViewById(R.id.choose_image_btn);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openGallery();
}
});
final Button button = findViewById(R.id.button_save);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent replyIntent = new Intent();
if (TextUtils.isEmpty(mEditRecipeView.getText())) {
setResult(RESULT_CANCELED, replyIntent);
} else {
String recipe = (mEditRecipeView.getText().toString());
replyIntent.putExtra(EXTRA_REPLY, recipe);
setResult(RESULT_OK, replyIntent);
}
finish();
}
});
}
}
Это мой основной код активности. Что в принципе здесь не так, так это то, что в представлении Recycler отображается только Имя, я не уверен, как заставить его отображать ингредиенты и метод?
public class MainActivity extends AppCompatActivity implements
RecipeListAdapter.OnItemClickListener {
private static final String TAG = "MAIN ACTIVITY";
private static final int RESULT_UPDATED = 300;
private RecipeViewModel mRecipeViewModel;
public static final int NEW_WORD_ACTIVITY_REQUEST_CODE = 1;
public String Name;
public String Ingredients;
public String Method;
private RecipeListAdapter mAdapter;
private RecipeDao recDao;
Menu menu;
List<Recipe> recipesList = new ArrayList<>();
ListView search_items;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RecyclerView recyclerView = findViewById(R.id.recyclerview);
final RecipeListAdapter adapter = new RecipeListAdapter(this);
recyclerView.setAdapter(adapter);
adapter.setOnItemClickListener(MainActivity.this);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
mRecipeViewModel = new ViewModelProvider(this).get(RecipeViewModel.class);
Log.d(TAG, "SIZE OF LIST: "+ recipesList);
mRecipeViewModel.getAllRecipes().observe(this, new Observer<List<Recipe>>() {
@Override
public void onChanged(@Nullable final List<Recipe> recipes) {
// Update the cached copy of the words in the adapter.
int size = adapter.getItemCount();
Log.d(TAG, "List of List : " + recipes);
recipesList= recipes;
adapter.setWords(recipes);
}
});
FloatingActionButton fab = findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, AddRecipeActivity.class);
startActivityForResult(intent, NEW_WORD_ACTIVITY_REQUEST_CODE);
}
});
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == NEW_WORD_ACTIVITY_REQUEST_CODE && resultCode == RESULT_OK) {
Recipe recipe = new Recipe(data.getStringExtra(AddRecipeActivity.EXTRA_REPLY));
RecipeViewModel.insert(recipe);
} else {
Toast.makeText(
getApplicationContext(),
R.string.empty_not_saved,
Toast.LENGTH_LONG).show();
}