Логика работы. По нажатию на кнопку перехожу из MainActiviy => Fragment(меняет динамически ListView with Data) =>(при нажатие на подстроку перехожу в FragmentDialog(для редактирования)) Получается в Диалог хочу пережать данные уже которые есть, в ListView , но возвращает первый пункт,а я нажал к примеру на второй,третий,чтобы ередать текущий, использываю view.findViewById не принимает,как передать текущий?
listView.setOnItemLongClickListener (new AdapterView.OnItemLongClickListener () {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
Bundle bundle = new Bundle();
bundle.putInt (fragment_dialog_coast.DIALOG_ID,R.id.id);
bundle.putInt (fragment_dialog_coast.DIALOG_COASTS,R.id.tvName);
bundle.putInt (fragment_dialog_coast.DIALOG_SUMMA,R.id.tvSumma);
bundle.putInt (fragment_dialog_coast.DIALOG_DESCRIPTION,R.id.description);
fragment_dialog_coast.setArguments (bundle);
curItem = id;
return false;
}
});
напишите во фрагменте:
public static MyFragment newInstance(int number) {
Bundle args = new Bundle();
args.putInt(NUMBER, number);
...
MyFragment fragment = new MyFragment ();
fragment.setArguments(args);
return fragment;
}
вызывайте где нужно: MyFragment.newInstance(number)
можете передавать неограниченное количество аргументов, записывая их в Bundle в newInstance
Если же у вас уже есть рабочий фрагмент, просто пропишите в нем функции setNumber (и т.д.) и вызывайте его через экземпляр myFragment.setNumber(number);
Если вы работаете с View фрагмента, во втором случае может быть NullPointerExeption, если вы вызовете функцию до его добавления.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей