У меня есть ListFragment с некоторыми данными. Я пытаюсь сортировать содержимое своего списка в зависимости от того, какой элемент я выбираю из меню. Как я могу обновить содержимое списка, когда я выбираю один параметр из меню? Я не хочу создавать другой фрагмент, просто хочу сортировать по имени или по дате информацию, которая у меня есть в списке, поэтому, когда я нажимаю на один элемент в меню, список сразу обновляется в зависимости от того, нажимаю ли я сортировку по имени или сортировать по дате.Обновление содержимого в ListFragment в меню нажмите
public class MainActivity extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_sort_by_name) {
Fragment currentFragment = this.getFragmentManager().findFragmentById(R.id.fragment1);
ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.Months, android.R.layout.simple_list_item_1);
setListAdapter(adapter);
}
return super.onOptionsItemSelected(item);
}
И тогда у меня есть класс Java для фрагмента:
public class EventsListFragment extends ListFragment implements OnItemClickListener {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.list_fragment, container, false);
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
ArrayAdapter adapter = ArrayAdapter.createFromResource(getActivity(), R.array.Planets, android.R.layout.simple_list_item_1);
setListAdapter(adapter);
getListView().setOnItemClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,long id) {
Toast.makeText(getActivity(), "Item: " + position, Toast.LENGTH_SHORT).show();
}
Похоже, вы можете обновить сортировку для [ArrayAdapter] (https://developer.android.com/reference/android/widget/ArrayAdapter.html#sort%28java.util.Comparator%3C?%20super% 20T% 3E% 29) – zec