Ответы пользователя по тегу ООП
  • Как получить нужный Fragment из Activity при использовании ViewPager?

    @PaulWeb
    getItem не подойдет потому что там грубо говоря хранятся болванки фрагментов,на самом деле в FragmentStatePagerAdapter есть список называется mFragments, вот туда и сохраняется ссылка уже на созданный фрагмент после того как пройдет транзакция, а как выдернуть можно просто сделать свой FragmentStatePagerAdapter и там добавить метод
    public Fragment getRegisteredFragment(int position){
            return Is.empty(mFragments) ?null:mFragments.get(position);
        }


    а да если по каким то причинам свой adapter не пойдет то надо искать в fragmentmanager, надо посомтреть под каким id туда записали фрагмент и все, порядок формирования идентификатора не помню но легко можно посмотреть на stackoverflow
    Ответ написан
    Комментировать
  • Как создать всплывающее меню с EditText в Android?

    @PaulWeb
    вот хорошая библиотека Material dialogs, И еще не много да и вот ссылка на demo для оценки demo

    Dialog.Builder builder = new SimpleDialog.Builder(){
                @Override
                protected void onBuildDone(Dialog dialog) {
                    dialog.layoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
                }
                @Override
                public void onNegativeActionClicked(DialogFragment fragment) {
                    super.onNegativeActionClicked(fragment);
                }
    
                @Override
                public void onPositiveActionClicked(final DialogFragment fragment) {
                    final EditText codeField = (EditText) fragment.getDialog().findViewById(R.id.facCode);
                    final View panelProgress=fragment.getDialog()
                            .findViewById(R.id.facProgressPanel);
                    final ProgressView progress=(ProgressView)fragment.getDialog()
                            .findViewById(R.id.facProgress);
                    if (Is.empty(codeField)) {
                        App.showMessage(R.string.warn_fields);
                        return;
                    }
                    ......
                }
            };
    
            builder.title(App.getResStr(R.string.activation))
                    .positiveAction(App.getResStr(R.string.send))
                    .negativeAction(App.getResStr(R.string.cancel))
                    .contentView(R.layout.fragment_activation);
            DialogFragment fragment = DialogFragment.newInstance(builder);
            fragment.show(context.getSupportFragmentManager(), null);


    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:orientation="vertical"
        android:padding="5dp" >
    
        <EditText
            android:id="@+id/facCode"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/hint_activation"
            android:layout_centerInParent="true"
            android:inputType="number"
            android:singleLine="true"
            android:textSize="16sp" />
        <LinearLayout
            android:id="@+id/facProgressPanel"
            android:orientation="horizontal"
            android:gravity="center"
            android:visibility="gone"
            android:background="@color/xxxxxx"
            android:layout_centerInParent="true"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <com.rey.material.widget.ProgressView
                android:id="@+id/facProgress"
                style="?attr/xxxxxxx
    
                />
        </LinearLayout>
    </RelativeLayout>
    Ответ написан
    3 комментария