Помогите реализовать идею с приложением.Приложение получает JSON с сайта и отображает информацию на экране (например, игры (изображение, название игры, создатели, год выпуска и описание)).Это все разделено, получено данные через модернизацию и вывод их через recycleview.С этим проблем нет, но я не могу думать о реализации фильтра.Фильтр должен быть динамическим, например, создатели и год выпуска.Активация открывается, когда список СОЗДАТЕЛЕЙ падает, а флажки с названием студии снижаются, а ГОД ПРОБЛЕМЫ и флажки с годом выпуска также идут после него (только создатели и год должны получать информацию из данных, которые ониполучил от сервера через Джейсона).Идея состоит в том, чтобы иметь первый стандартный флажок типа all, который позволяет сразу выводить все, что находится в самом начале приложения, а затем нажать кнопку фильтра и выбрать именно то, что вас интересует.И должна быть кнопка, которая все это обновляет и возвращает с конкретными параметрами.И я увидел, что есть кнопка в виде креста в правом верхнем углу (вверху на панели действий), которая, возможно, отменяет все и возвращает ее в исходное положение (только для всех флажков).Я очень надеюсь на ваши советы и советы о том, как реализовать это приложение.Спасибо всем
Вот хороший пример фильтра (он мне нужен) https://pp.userapi.com/c851332/v851332451/e7308/hhiO3IOHPsg.jpg
фактически отдельное действие, которое динамически заполняется флажками на результатах, полученных изJSON (имя, год и т. Д.)
Значение класса POJO:
открытый класс Значение {
@SerializedName("title")
@Expose
private String title;
@SerializedName("year")
@Expose
private String year;
@SerializedName("genre")
@Expose
private List<String> genre;
@SerializedName("director")
@Expose
private String director;
@SerializedName("desription")
@Expose
private String desription;
@SerializedName("image")
@Expose
private String image;
public String getTitle() {
return title;
}
public String getYear() {
return year;
}
public List<String> getGenre() {
return genre;
}
public String getDirector() {
return director;
}
public String getDesription() {
return desription;
}
public String getImage() {
return image;
}
}
Класс POJO длязначение списка:
открытый класс Пример {
@SerializedName("values")
@Expose
private List<Value> values = null;
public List<Value> getValues() {
return values;
}
}
MainActivity:
открытый класс MainActivity extends Activity {
private static final String TAG = "MoviesApp";
RecyclerView recyclerView;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.filters:
Intent intent = new Intent(this, FiltersActivity.class);
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.rc_movies);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(linearLayoutManager);
recyclerView.setHasFixedSize(true);
JSONPlaceHolderApi service = NetworkService.getJSONApi();
Call <Example> call = service.getValues();
call.enqueue(new Callback<Example>() {
@Override
public void onResponse(Call<Example> call, Response<Example> response) {
Example data = response.body();
if(response.isSuccessful()) {
if(data != null) {
MoviesAdapter moviesAdapter = new MoviesAdapter(MainActivity.this, data);
recyclerView.setAdapter(moviesAdapter);
Log.i(TAG, "Response call");
}else{
Log.i(TAG, "Data is null");
}
}else{
Log.i(TAG, "Response does not successful");
}
}
@Override
public void onFailure(Call<Example> call, Throwable t) {
Log.i(TAG, "Failure call");
}
});
}
}
И я не могу сделать FiltersActivity так, чтобы он работал в соответствии с условием
Извините за плохой английский: C