Урок 110. Android 3. Fragments. DialogFragment - диалог

Обсуждение уроков
K_Vladimir
Сообщения: 36
Зарегистрирован: 28 июн 2015, 03:13

Re: Урок 110. Android 3. Fragments. DialogFragment - диалог

Сообщение K_Vladimir » 20 сен 2015, 23:22

SkN[i]lPl[e][r] писал(а):Здравствуйте я использовал примеры из урока и у меня выдало ошибки:
dlg1 = new Dialog1(); - здесь говорит что Cannot resolve constructor "Dialog1()"
dlg1.show(getFragmentManager(), "dlg1"); - здесь говорит что Cannot resolve method "getFragmentManager()"
В проекте у меня minSdkVersion 11; targetSdkVersion 21.
Диалоги пытаюсь вызвать из класса конструктора.
Второй тип диалога dlg2 = new Dialog2(); - все нормально, здесь ничего не подчеркнул.
Но в dlg2.show(getFragmentManager(), "dlg2"); - та же ошибка что и в первом случае
Если это ещё актуально..... (Хотя это выше уже 2 раза обсуждалось.)
У меня решилось так (См. урок 114):
Сделай импорт в Dialog1

Код: Выделить всё

import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
В Dialog2

Код: Выделить всё

import android.app.Dialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AlertDialog;
import android.util.Log;
В MainActivity

Код: Выделить всё

import android.support.v4.app.DialogFragment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
А также dlg1.show(getSupportFragmentManager(), "dlg1"); и dlg2.show(getSupportFragmentManager(), "dlg2");

mrMayhem
Сообщения: 1
Зарегистрирован: 04 окт 2015, 20:22

Re: Урок 110. Android 3. Fragments. DialogFragment - диалог

Сообщение mrMayhem » 04 окт 2015, 20:23

Как установить полоску под Title? У меня почему-то ее нету

worldmen
Сообщения: 12
Зарегистрирован: 08 апр 2013, 00:04

Re: Урок 110. Android 3. Fragments. DialogFragment - диалог

Сообщение worldmen » 08 дек 2015, 22:08

Мне нужно в диалог вставить список. Тем способом, который я знаю - выводит ошибку:
[syntax=java]public class DialogFragmentFile extends DialogFragment implements View.OnClickListener {

public ListView lvFile;
private ClickItemListListener listener;
String[] names = { "Иван", "Марья", "Петр", "Антон", "Даша" };

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
getDialog().setTitle("Выберите :");
View v = inflater.inflate(R.layout.dialog_file, null);
v.findViewById(R.id.btnYes).setOnClickListener(this);
v.findViewById(R.id.btnCancel).setOnClickListener(this);

// находим список
lvFile =(ListView) v.findViewById(R.id.lvFile);
// создаем адаптер
ArrayAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, names);
// присваиваем адаптер списку
lvFile.setAdapter(adapter);

return v;
}[/syntax]
Возникает ошибка в строке 16. Как правильно вставлять список в диалог?

Аватара пользователя
vorskla
Сообщения: 5
Зарегистрирован: 04 дек 2015, 14:53

Re: Урок 110. Android 3. Fragments. DialogFragment - диалог

Сообщение vorskla » 02 янв 2016, 15:46

Где прописать setCancelable(false); ,чтобы по нажатию на кнопку диалог не закрывался?

dassad
Сообщения: 8
Зарегистрирован: 20 дек 2015, 00:03

Re: Урок 110. Android 3. Fragments. DialogFragment - диалог

Сообщение dassad » 20 янв 2016, 15:47

у меня при открытия диалога типа DialogFragment:

dialogSearch = new DialogSearch();
Bundle bundle = new Bundle();
bundle.putStringArray("spin", spinArr);
dialogSearch.setArguments(bundle);
dialogSearch.show(getSupportFragmentManager(), "search");

или FragmentManager fra = getSupportFragmentManager();
fra.beginTransaction().add(R.id.frag, dialogSearch, "search").commit();

с указанием контейнера для фрагмента

автоматически добавляются некие margins по бокам, хотя ни в лейауте фрагмента, ни в лейауте открывающего его активити никаких отступов нет.
как можно указать что открывающийся фрагмент должен занять все пространство своего контейнера?


xml дюже длинный, нет смысла его сюда закладывать, начинается обычно:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00000000">

<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha=".8"
android:id="@+id/linearLayout" >

и пр.

Аватара пользователя
tnt2ultra
Сообщения: 2
Зарегистрирован: 26 мар 2016, 13:11
Откуда: Балашиха
Контактная информация:

Re: Урок 110. Android 3. Fragments. DialogFragment - диалог

Сообщение tnt2ultra » 26 мар 2016, 13:15

vorskla писал(а):Где прописать setCancelable(false); ,чтобы по нажатию на кнопку диалог не закрывался?
В onCreate MainActivity:
[syntax=java]dlg2 = new Dialog2();
dlg2.setCancelable(false);[/syntax]
А вот где вызывать setCanceledOnTouchOutside(false); ?
Может кто подскажет?

Vadelic
Сообщения: 1
Зарегистрирован: 09 июн 2016, 00:51

Re: Урок 110. Android 3. Fragments. DialogFragment - диалог

Сообщение Vadelic » 09 июн 2016, 00:56

Подскажите, а можно ли для диалога созданного через билдер отменить вызов onDismiss?

Armo
Сообщения: 1
Зарегистрирован: 31 янв 2018, 14:48

Re: Урок 110. Android 3. Fragments. DialogFragment - диалог

Сообщение Armo » 31 янв 2018, 14:58

Добрый день.
я тут в первый раз, посему - прошу прощения, ежели что не так написал.

вопрос - как работать с двумя DialogFragment-ами??
ситуация - есть активити, есть две кнопки - "Сохранить" и "удалить", при нажатии на которые пользователь должен подтвердить свое действие, через реакцию на Диалог (нажатие соответствующей кнопки - "Да" - "Нет". При этом я реализовал работу с диалога, по образу, приведенному в официальной документации (https://developer.android.com/guide/top ... singEvents). Реализовано через интерфейс, при создании диалога в качестве параметров передаются Заголовок, сообщение и иконка, нажатия получаю и отрабатываю в активити. Но вот не соображу - как же мне повесить второй диалог??? Хотел использовать некий универсальный модуль диалога, который можно использовать по необходимости..

п.с.
подскажите по ходу - как тут вставить код?

Ваняиван
Сообщения: 3
Зарегистрирован: 07 дек 2018, 18:05

Re: Урок 110. Android 3. Fragments. DialogFragment - диалог

Сообщение Ваняиван » 07 дек 2018, 18:28

Всем привет.

getFragmentManager() - андроид не вопринимает. Подчеркивает и сообщает:"Cannot resolve method 'show(android.app.FragmentManager, java.lang.String)' "
пробовал использовать getSupportFragmentManager - андроид вообще делает вид, что видит такой метод впервые и предлагает написать описание к данному методу.

Код: Выделить всё


package ru.miokard.dialogfragment;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AppCompatActivity;

public class MainActivity extends Activity {

    android.support.v4.app.DialogFragment dlg1;
    android.support.v4.app.DialogFragment dlg2;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        dlg1 = new Dialog1();
        dlg2 = new Dialog2();
    }

    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btnDlg1:
                dlg1.show(getSupportFragmentManager(), "dlg1");
                break;
            case R.id.btnDlg2:
                dlg2.show(getFragmentManager(), "dlg2");
                break;
            default:
                break;
        }

    }
}


Ответить