Как добавить несколько элементов в RecyclerView при нажатии кнопки? - PullRequest
0 голосов
/ 24 февраля 2020

Я пытаюсь добавить информацию о фильмах в Recyclerview при нажатии кнопки. У меня есть 2 мероприятия. Я могу добавить детали фильмов в первом упражнении и просмотреть список фильмов во втором упражнении. Первое действие содержит кнопку отправки для добавления фильмов.

enter image description here

Но проблема, с которой я сталкиваюсь, заключается в том, что я могу добавлять фильмы только в первый ряд , Если я пытаюсь добавить еще один mov ie, он заменяет первый ряд. Я хочу создать список фильмов по нажатию кнопки. Как мне это сделать? Приведенный ниже код представляет собой Основное действие (Первое действие).

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        setActionBarColour();
        clickEvents();

    }

    private void clickEvents()
    {
        final EditText editTextMovieName = findViewById(R.id.movieName);
        final EditText editTextGenre = findViewById(R.id.genre);
        final EditText editTextReleaseYear = findViewById(R.id.year);

        Button submit = findViewById(R.id.btnSubmit);
        Button movieList = findViewById(R.id.btnMovieList);

        final Bundle bundle = new Bundle();

        submit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String name = editTextMovieName.getText().toString();
                String genre = editTextGenre.getText().toString();
                String year = editTextReleaseYear.getText().toString();

                bundle.putString("MOVIE_NAME", name);
                bundle.putString("GENRE", genre);
                bundle.putString("YEAR", year);
            }
        });

        movieList.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this, MovieListActivity.class);
                intent.putExtras(bundle);
                startActivity(intent);
            }
        });
    }

    private void setActionBarColour()
    {
        ActionBar actionBar;
        actionBar = getSupportActionBar();

        ColorDrawable colorDrawable = new ColorDrawable(Color.parseColor("#3498DB"));
        assert actionBar != null;
        actionBar.setBackgroundDrawable(colorDrawable);
    }
}

Этот приведенный ниже код является только функцией во Втором упражнении для получения данных

private void prepareMovieData()
    {
        Intent intent = getIntent();
        Bundle bundle = intent.getExtras();

        String movieName = bundle.getString("MOVIE_NAME");
        String genre = bundle.getString("GENRE");
        String year = bundle.getString("YEAR");

        Movie movie = new Movie(movieName,genre,year);
        movieList.add(movie);

    }

Если я редактирую вышеуказанное код

        Movie movie = new Movie(movieName,genre,year);
        movieList.add(movie);        

        Movie movie2 = new Movie(movieName,genre,year);
        movieList.add(movie2);

Я могу добавить только 2 фильма. Если я хочу поставить 3 фильма, то мне нужно было бы добавить третье утверждение, подобное этому

        Movie movie3 = new Movie(movieName,genre,year);
        movieList.add(movie3);

Чем больше фильмов я хочу, тем больше строк кода я должен написать. Так как же поставить большое количество фильмов на клик?

Ответы [ 2 ]

0 голосов
/ 24 февраля 2020

Когда я проверяю ваш код, когда вы вызываете второе действие, он очищает ваши данные модели и позволяет легко использовать данные, которые можно преобразовать в класс модели, чтобы помочь вам передать класс модели из одного действия в другое, для этого используйте onActivityresult и добавьте его. Модель в список, чтобы добавить несколько данных через намерение. или вы можете сохранить свои данные в локальном sql -лите и получить данные для следующего действия

0 голосов
/ 24 февраля 2020

В соответствии с подробностями вашего вопроса, мы можем сделать вывод, что

1) При отправке перейти к следующему действию с подробностями mov ie и добавить адаптер.

2) Нажмите назад

3) Повторите шаг 1 с новыми деталями.

Так что при повторном посещении следующего экрана не будет предыдущих данных. Для этого вам необходимо сохранить данные в локальном хранилище и отобразить их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...