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

Обсуждение уроков
Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

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

Сообщение Foenix » 31 май 2013, 07:04

asolovey писал(а):rezak90,
А Вы могли бы написать конкретнее, как это сделать(я новичок в Андроид).
Спасибо!
Вряд ли он расколется так быстро, подумайте пока, вам подсказано решение.
1. Получить путь к картинке при клике на строке listview
2. Запихнуть его в Bandle
3. Прочитать Bandle в DialogFragment
4. Отобразить там картинку.
Почти все есть в уроках.
Если картинка находится в базе данных, например, то нужно вместо пути передавать ее id.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

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

Сообщение rezak90 » 31 май 2013, 07:27

Foenix писал(а):Вряд ли он расколется так быстро
И здесь ты меня разоблачила. Но я же дал ответ, куда уж точнее, код писать что ли? Мне бы выспаться хотя бы, и найти ту песню, тогда и добрее стану...
R.id.team
Политика на форуме запрещена

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

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

Сообщение Foenix » 31 май 2013, 07:51

rezak90 писал(а):
Foenix писал(а):Вряд ли он расколется так быстро
И здесь ты меня разоблачила. Но я же дал ответ, куда уж точнее, код писать что ли? Мне бы выспаться хотя бы, и найти ту песню, тогда и добрее стану...
ну человек не знает об этом, будет ждать, надеяться.. время потеряет))
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

asolovey
Сообщения: 11
Зарегистрирован: 12 дек 2012, 00:58

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

Сообщение asolovey » 31 май 2013, 10:43

Foenix,
Картинки я парсю с xlm и json, то есть у меня есть на них ссылки. Вопрос в том или мне каким-то образом доставать эту ссылку с ListView или можно ссылку на конкретный элемент каким-то образом передать с заранее готового ЕррейЛиста в который я парсю ссылки? Не могу пока понять, каша в голове

rezak90,
Я так понимаю, что Вы за то, чтоб читатели Вашего портала думали самостоятельно и изучали таким образом Android? :) У меня просто сдача теста на курсах по Android горит, а я никак не могу победить этот момент.

В любом случае, спасибо за помощь.

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

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

Сообщение rezak90 » 31 май 2013, 11:07

asolovey писал(а):rezak90,
Я так понимаю, что Вы за то, чтоб читатели Вашего портала думали самостоятельно и изучали таким образом Android? :) У меня просто сдача теста на курсах по Android горит, а я никак не могу победить этот момент.
ну так у Вас есть же ссылка, при клике передаём её с интентом, в следующей активити достаём с интента и грузим в ImageView.
Что из выше сказанного не понятно? интент, активити? Я то готов помочь, просто говорите что конкретно не понятно. Не буду ж я писать весь код каждому в ответ на ихние вопросы. Я как движущий механизм, только задаю направление и чуть-чуть подталкиваю.
R.id.team
Политика на форуме запрещена

asolovey
Сообщения: 11
Зарегистрирован: 12 дек 2012, 00:58

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

Сообщение asolovey » 31 май 2013, 11:12

То есть лучше передавать картинку в активити а не в DialogFragment? А можно активити отобразить в виде диалога?

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

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

Сообщение rezak90 » 31 май 2013, 11:20

asolovey писал(а):То есть лучше передавать картинку в активити а не в DialogFragment? А можно активити отобразить в виде диалога?
1) активити в диалоге не отобразить;
2) а зачем отображать картинку в диалоге? оно ж будет не красиво, но если Вам уж так нужно то можно и так;
R.id.team
Политика на форуме запрещена

asolovey
Сообщения: 11
Зарегистрирован: 12 дек 2012, 00:58

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

Сообщение asolovey » 31 май 2013, 11:23

К сожалению, такая задача, чтобы картинка отображалась как бы попапом над основным активити? Возможно это можно сделать каким-то другим способом, без диалога?

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

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

Сообщение klblk » 31 май 2013, 11:32

Активити в диалоге не отобразить, но можно использовать диологовую тему для активити, тогда она будет выглядеть как диалог.
(например: android:theme="@android:style/Theme.Dialog" )

asolovey
Сообщения: 11
Зарегистрирован: 12 дек 2012, 00:58

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

Сообщение asolovey » 31 май 2013, 11:34

Спасибо, буду пробовать

asolovey
Сообщения: 11
Зарегистрирован: 12 дек 2012, 00:58

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

Сообщение asolovey » 02 июн 2013, 18:03

Вообщем, решил не париться с DialogFragment и сделал через Activity c темой диалога

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

OnItemClickListener listener = new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> item, View v,
					int position, long id) {

				String pathToImage=(String)bmpUrlsList.get(position);
     			Intent intent = new Intent(XMLList.this, SingleImage.class);
			    intent.putExtra("imagePath", pathToImage);
			    startActivity(intent);
			    
								 
			}

		};

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

public class SingleImage extends Activity {
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		super.onCreate(savedInstanceState);
		setContentView(R.layout.single_image);

		
		String path = getIntent().getStringExtra("imagePath");
		new ImageLoader((ImageView) findViewById(R.id.logoimage)).execute(path);		
				
	    
}
Еще раз спасибо, за помощь.

dusshes
Сообщения: 23
Зарегистрирован: 25 сен 2013, 14:23

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

Сообщение dusshes » 26 сен 2013, 12:00

Интересно, а можно в диалоге (или в активити с диалоговой темой) в заголовке сделать что-то подобное ActionBar (ну или хотя бы кнопочку справа)?

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

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

Сообщение Mikhail_dev » 26 сен 2013, 13:27

DialogFragment использует layout. В чем проблема сделать кастомный layout и поставить его обработчики?

dusshes
Сообщения: 23
Зарегистрирован: 25 сен 2013, 14:23

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

Сообщение dusshes » 26 сен 2013, 13:35

Понял.
Правда будет выглядеть не совсем так же как в других диалогах. Особенно в следующих версиях андроида.

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

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

Сообщение Mikhail_dev » 26 сен 2013, 13:44

На сколько знаю, Holo Everywhere позволяет портировать в старые версии андроида темы с нового, так что будет выглядеть одинаково, если его использовать. Внутри себя либа уже содержит ActionBar Sherlock

dusshes
Сообщения: 23
Зарегистрирован: 25 сен 2013, 14:23

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

Сообщение dusshes » 26 сен 2013, 14:49

Как я понял Вы предлагаете скрыть title у диалога, а в layout вверху вставить строку, в которой смоделировать заголовок.
Так вот я говорю о том, что сейчас можно сделать внешний вид этой строки максимально приближенный к шапке диалогов. Но в следующих версиях андроида, например, что-то будет изменено в шапках диалогов. А в моем layout "нарисованная" шапка останется прежней.

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

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

Сообщение Mikhail_dev » 26 сен 2013, 15:19

Да, вы верно размышляете. Может стоит пересмотреть свой взгляд на юзабилити? На сколько я знаю, сделать на данный момент так невозможно.

w201
Сообщения: 9
Зарегистрирован: 08 дек 2013, 12:43

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

Сообщение w201 » 08 дек 2013, 12:49

А у меня другой вопрос.
Есть Android 2.3.3 в котором диалог фрагмент отображается так, как я хочу - http://prntscr.com/296xvr
Но при запуске на Android 4 ситуация уже другая - http://prntscr.com/296y99
Layout для фрагмента такой:
[syntax=xml]
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="200dp"
android:layout_height="wrap_content" android:baselineAligned="false"
android:measureWithLargestChild="false" android:showDividers="middle" android:clickable="true"
android:divider="@drawable/line">

<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:gravity="center_vertical|left"
android:clickable="true" android:onClick="onClick" android:id="@+id/trVolume">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView" android:src="@drawable/volume" android:contentDescription="s"
android:layout_marginTop="5dp" android:layout_marginBottom="5dp" android:layout_marginLeft="10dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView" android:text="@string/lblVolume" android:paddingLeft="20dp"
android:layout_marginRight="10dp"/>
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:gravity="center_vertical" android:clickable="true"
android:id="@+id/trLength">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView2" android:src="@drawable/length" android:layout_marginTop="5dp"
android:layout_marginBottom="5dp" android:layout_marginLeft="10dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/lblLength"
android:id="@+id/textView2" android:paddingLeft="20dp" android:layout_marginRight="10dp"/>
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:gravity="center_vertical|left" android:clickable="true"
android:id="@+id/trWeight">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView3" android:src="@drawable/weight" android:layout_marginTop="5dp"
android:layout_marginBottom="5dp" android:layout_marginLeft="10dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/lblWeight"
android:id="@+id/textView3" android:paddingLeft="20dp" android:layout_marginRight="10dp"/>
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:gravity="center_vertical|left" android:clickable="true"
android:id="@+id/trArea">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView4" android:src="@drawable/area" android:layout_marginTop="5dp"
android:layout_marginBottom="5dp" android:layout_marginLeft="10dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/lblArea"
android:id="@+id/textView4" android:paddingLeft="20dp" android:layout_marginRight="10dp"/>
</TableRow>
</TableLayout>
[/syntax]

Создается фрагмент таким способом
[syntax=java]
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
getDialog().setTitle(getString(R.string.selectConv));

View v = inflater.inflate(R.layout.unit_conv_select, null);
return v;
}
[/syntax]

Внимание вопрос - как заставить android 4 выставлять ширину диалога по ширине содержимого, а не растягивать его на весь экран?

парень
Сообщения: 223
Зарегистрирован: 30 мар 2013, 22:52

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

Сообщение парень » 10 дек 2013, 06:42

Добрый день.

Подскажите пожалуйста. Каким инструментом можно сделать "всплывающие меню" при нажатии на эллемент ListView.
Меню будет из трех кнопочек "Удалить", "Редактировать","детализация".
В нем нету заголовка.
Оно должно появляться со строгой привязкой к нажатому эллементу, т.е. или выше или ниже его.
При нажатии не на пункт вызванного меню оно закрывается.
Остальной экран(помимо содержимого меню) не затемняется.

пробовал через ReleativLayout добавлять свой слой.
1.не знаю как его "привязать" к эллементу списка.
2. не знаю как правльно его "уничтожить" при нажатии в не меню...

Возможно я не в ту сторону смотрю?
Подскажите пожалуйста направление с алгоритмом действий. (в прочем как всегда и подсказываете :) )
Мой первенец: MyMoney. Менеджер расходов

Бьем рекорды русских топов :)

Могу ответить на любые вопросы по маркетингу и развитию.

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

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

Сообщение Foenix » 10 дек 2013, 11:35

для этого когда-то было "контекстное меню", но теперь оно deprecated, используй
http://developer.android.com/design/pat ... contextual
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Ответить