Создание нового объекта - как пройти через все элементы? - PullRequest
0 голосов
/ 01 апреля 2020

Итак, у меня есть действие под названием AddNewRecipe. Эта работа должна состоять из 3 полей: Имя, Ингредиенты и Метод. В настоящее время я могу пройти только через поле «Имя» в основной активности. Я также мог бы отображать имя, ингредиенты и метод в представлении Recycler, которое у меня есть в настоящее время.

Вот изображение представления Recycler, которое у меня есть

enter image description here

Это код добавления активности

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();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...