Форум программистов, компьютерный форум CyberForum.ru

Реализация PopupMenu в элементе CardView - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Парсинг JSON объекта http://www.cyberforum.ru/android-dev/thread1772885.html
Здравствуйте, программисты! Помогите, пожалуйста, с решением задачи: Есть json-объект такого вида: {"map": {"firstname": null, "lastname": null, "birth": {"day": null, "place": null}}, "data": ], ]]} И мне нужно как-то распарсить, т.е. получить данные для каждого ключа: firstname = "Ivan", lastname = "Ivanov" и т.д. Есть ли такая готовая функция в Android Studio для извлечения данных?
Программирование Android Скрыть ActionBar() на другом активити Ребята привет, есть переключатель switch. Скрывает и показывает ActionBar. Сейчас показывает и скрывает только на том активити, где находится переключатель (activity_settings). Подскажите, как скрыть ActionBar на активити activity_main, если переключатель находится на activity_settings? Вот рабочий код: public class SettingsActivity extends AppCompatActivity { private Switch mSwitch;... http://www.cyberforum.ru/android-dev/thread1772851.html
Фрагмент поверх другого Программирование Android
Меняю фрагменты след. кодом: public void fragmentChange(int id, boolean addToBackStack){ FragmentTransaction fTrans = getSupportFragmentManager().beginTransaction(); switch (id){ case Constants.PEOPLE_NEAR_DRAWER_ID: fTrans.replace(R.id.frgmCont, new PeopleNear(), Constants.PEOPLE_NEAR_FRAGMENT_TAG); if (addToBackStack)...
Программирование Android Как называется меню, которое вызывается по касанию?
Как правильно называется меню, которое вызывается по касанию? Вот как в приложении В Котакте. Пальцем провел слева направо и появилось меню. Как такой эффект называется? Сенсорное меню? Чем достигается такой эффект в приложениях для Андроид, каким кодом? Я недавно пытался такое меню сделать для веб-сайта, но там это та еще боль (или я просто чего-то не понимаю). На форуме задал вопрос в...
Программирование Android приложение для ip камеры (найтисоздатьпередалть) http://www.cyberforum.ru/android-dev/thread1772496.html
здравствуйте нужна приложения для моб устроиств андроид и ios которая позволила бы просматривать видео с ип камеры (vstarcam c7824wip) приложение которое шло в комплект Eye4 работает только во вннутренной сети то есть если телефон подключен к другой wifi или Моб Интернет то связь с камерой невозможна так же сейчас единствельная программа которую нашел на PlayMarket это VsCam которая меня...
Программирование Android Анимация NavigationView - не обрабатываются события от кнопок Решил опробовать данное решение.https://github.com/mxn21/FlowingDrawer. Проблема никак не могу обработать события с кнопок. Главное фрагмент fragment_menu.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" ... подробнее

Показать сообщение отдельно
AIN427
0 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 5
01.07.2016, 13:16  [ТС]     Реализация PopupMenu в элементе CardView
Цитата Сообщение от urayatsko Посмотреть сообщение
Здравствуйте, если есть cardView есть и список - RecycleVIew. Нажатье на елемент(view) cardview можна сделать в адаптере там вы получите и сам объект.
После добавление записи, у адаптера вызывать метод notifydatasetchanged
Здравствуйте, спасибо за ответ.
Но я так и не понял, как решить проблему...

Вот мой адаптер:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
public class RemindListAdapter extends RecyclerView.Adapter<RemindListAdapter.RemindViewHolder> {
 
    private ArrayList<Reminder> reminder;
 
    public RemindListAdapter(ArrayList<Reminder> reminder) {
        this.reminder = reminder;
    }
 
    @Override
    public RemindViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.remind_item, parent, false);
        return new RemindViewHolder(view);
    }
 
    @Override
    public void onBindViewHolder(RemindViewHolder holder, int position) {
        holder.title.setText(reminder.get(position).getTitle());
        holder.description.setText(reminder.get(position).getDescription());
    }
 
    @Override
    public int getItemCount() {
        return reminder.size();
    }
 
    public static class RemindViewHolder extends RecyclerView.ViewHolder {
 
        CardView cardView;
        TextView title;
        TextView description;
 
 
        public RemindViewHolder(View itemView) {
            super(itemView);
 
            cardView = (CardView) itemView.findViewById(R.id.cardView);
            title = (TextView) itemView.findViewById(R.id.item_title);
            description = (TextView) itemView.findViewById(R.id.item_description);
        }
    }
 
 
 
}

Здесь я создаю и наполняю содержимым RecyclerView:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public class HistoryFragment extends AbstractTabFragment {
    private static final int LAYOUT = R.layout.fragment_history;
 
 
    public static HistoryFragment getInstance(Context context) {
        Bundle args = new Bundle();
        HistoryFragment fragment = new HistoryFragment();
        fragment.setArguments(args);
 
        fragment.setContext(context);
        fragment.setTitle(context.getString(R.string.tab_item_history));
        
 
        return fragment;
    }
 
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        view = inflater.inflate(LAYOUT, container, false);
 
        RecyclerView rv = (RecyclerView) view.findViewById(R.id.recycleView);
        rv.setLayoutManager(new LinearLayoutManager(context));
        RemindListAdapter adapter = new RemindListAdapter(createHistoryList());
        adapter.notifyDataSetChanged();
        rv.setAdapter(adapter);
        return view;
    }
 
    private ArrayList<Reminder> createHistoryList() {
 
        DBHelper dbHelper = new DBHelper(getContext());
 
        return dbHelper.getAllReminders();
    }
 
    public void setContext(Context context) {
        this.context = context;
    }
 
}
добавление нового содержимого находится вообще в другом классе:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public class InputDialogFragment extends DialogFragment implements DialogInterface.OnClickListener {
 
    private View form = null;
 
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        form = getActivity().getLayoutInflater().inflate(R.layout.input_dialog, null);
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        return (builder.setTitle("Форма ввода").setView(form)
                .setPositiveButton(R.string.add_button, this)
                .setNegativeButton(R.string.cancel_button, null).create());
    }
 
    @Override
    public void onClick(DialogInterface dialog, int which) {
        EditText titleBox = (EditText) form.findViewById(R.id.inputTitle);
        EditText descriptionBox = (EditText) form.findViewById(R.id.inputBody);
 
        Reminder reminder = new Reminder(titleBox.getText().toString(), descriptionBox.getText().toString());
        DBHelper dbHelper = new DBHelper(getContext());
        dbHelper.addReminder(reminder);
 
 
 
    }
 
    @Override
    public void onDismiss(DialogInterface unused) {
        super.onDismiss(unused);
    }
 
    @Override
    public void onCancel(DialogInterface unused) {
        super.onCancel(unused);
    }
 
 
}
Обработчик popupMenu находится вообще в MainActivity.

В InputDialogFragment (там где происходит добавление) я не могу вызвать метод notifydatasetchanged, т.к. там нет самого адаптера.

Обратится к сущности через адаптер из MainActivity (там где реализация обработчика PopupMenu) тоже.

В общем, реализация, я так понимаю, у меня сделана через одно место. Всё раскидано по разным местам. Теперь вопрос, как это все красиво переделать...
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru