Урок 42. Список - ListView

Обсуждение уроков
palachsuper
Сообщения: 5
Зарегистрирован: 15 ноя 2012, 07:33

Re: Урок 42. Список - ListView

Сообщение palachsuper » 21 ноя 2012, 13:42

Ребят, может кто сталкивался с таким... Я просто не пользователь андроида, но в силу знаний java и работы пришлось написать приложение для android, так что не судите строго, а то ведь я не в тему, просто такой темы не нашел. Есть такая вещь, как сканирование wifi сетей, результат сканирования можно увидеть в ScanResult. Но у андроида есть одно но, точнее 2 - отсутствие возможности подключения к adhoc сети по dhcp, а только лишь со статичным ip и !!! чтоб подключиться к сети с помощью wifi.enableNetwork(NetWorkId, disableOthers) требуется айдишник из, внимание, wificonfiguration. нашел я материал по поводу добавления сети именно в конфигурейшен, делаю save, но сеть в список именно запомненных не добавляется.

ScanResult ggg = new ScanResult;
String service = Context.WIFI_SERVICE;
WifiManager wifi = (WifiManager)getSystemService(service);
List<WifiConfiguration> configurations = wifi.getConfiguredNetworks();
WifiConfiguration dd = new WifiConfiguration();
dd.SSID = "\"" + ggg.SSID + "\"";
dd.preSharedKey = "\\";
dd.hiddenSSID = true;
dd.status = WifiConfiguration.Status.ENABLED;
dd.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
dd.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
dd.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
dd.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
dd.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
dd.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
configurations.add(dd);
wifi.saveConfiguration();
Моя проблема заключается еще в том, что мне нужно передавать в эти же настройки сети и пользовательские настройки - ip, dns и тд. Мож кто знает, прошу помощи, заранее благодарен.
PS: если у самого получится, то расскажу как, пусть оно так и будет)

palachsuper
Сообщения: 5
Зарегистрирован: 15 ноя 2012, 07:33

Re: Урок 42. Список - ListView

Сообщение palachsuper » 21 ноя 2012, 16:42

Очень крутая тенденция, мне она очень нравится: когда у меня возникает вопрос, я думаю над ним пару дней и потом задаю его на форуме, то через пару часов сам нахожу на него ответ) вся соль в протоколах шифрования. если нужно, могу рассказать и описать, да и вообще можно было бы 3-4 урока посвятить работе с wifi. очень уж плодотворная тема.

lancer
Сообщения: 12
Зарегистрирован: 21 ноя 2012, 23:12

Re: Урок 42. Список - ListView

Сообщение lancer » 21 ноя 2012, 23:18

Добрый, Подскажите пожалуйста как заполнить ListView из базы SQlite.

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

Re: Урок 42. Список - ListView

Сообщение rezak90 » 21 ноя 2012, 23:29

lancer писал(а):Добрый, Подскажите пожалуйста как заполнить ListView из базы SQlite.
SimpleCursorAdapter вам нужно реализовать
R.id.team
Политика на форуме запрещена

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 42. Список - ListView

Сообщение damager82 » 22 ноя 2012, 09:22

rezak90 писал(а):
lancer писал(а):Добрый, Подскажите пожалуйста как заполнить ListView из базы SQlite.
SimpleCursorAdapter вам нужно реализовать
Урок 52
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

nubodroid
Сообщения: 28
Зарегистрирован: 19 ноя 2012, 08:20

Re: Урок 42. Список - ListView

Сообщение nubodroid » 26 ноя 2012, 01:50

Всем доброй ночи!
Скажите, а в диалоговых окнах можно использовать адаптеры?
Просто у меня есть main_layout и на нем находится спиннер... он отображается нормально, через меню вызываю диалоговое окно, в котором находится другой спиннер... Сам адаптер создается нормально, но как только пытаюсь его присоединить к спиннеру... вываливается ошибка. Уже все сто раз проверил - кто, куда, к кому, как.....

ой...все.. нашел...

я использовал

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

dialogCategoryListSpinner = (Spinner)findViewById(R.id.spinnerSelectCategory);
а надо было

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

dialogCategoryListSpinner = (Spinner)layout.findViewById(R.id.spinnerSelectCategory);

v_grechka
Сообщения: 20
Зарегистрирован: 09 авг 2012, 13:30

Re: Урок 42. Список - ListView

Сообщение v_grechka » 26 ноя 2012, 16:24

Как программно переместить курсор на 1-й, последний элемент списка.
Добавили новый элемент в списко, обновили его, но элемент в сааамом низу большого списка.
Так вот как программно переметится в конец списка, чтобы этот элемент был на экране?
Или же в диалоговом окне отредактировали элемент, пересоздали список и как переместится
к той записи, что мы редактировали?

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

Re: Урок 42. Список - ListView

Сообщение rezak90 » 26 ноя 2012, 18:24

scroll свой нужно написать, у него есть методы которые вызываются когда скролится лист, в нём присваиваете глобальной переменной текущий айтем, потом делаете листу setposition или как там
R.id.team
Политика на форуме запрещена

v_grechka
Сообщения: 20
Зарегистрирован: 09 авг 2012, 13:30

Re: Урок 42. Список - ListView

Сообщение v_grechka » 27 ноя 2012, 08:54

А кто-нить реализовывал программный скроллинг?

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

Re: Урок 42. Список - ListView

Сообщение rezak90 » 27 ноя 2012, 10:35

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

private int itemPosition = 0;
private OnScrollListener scrollListView = new OnScrollListener() {
		@Override
		public void onScrollStateChanged(AbsListView view, int scrollState) {
			// TODO Auto-generated method stub

		}

		@Override
		public void onScroll(AbsListView view, int firstVisibleItem,
				int visibleItemCount, int totalItemCount) {
			itemPosition = firstVisibleItem;
		}
	};
ListView lvMain = (ListView) findViewById(R.id.lvMain);
lvMain.setOnScrollListener(scrollListView);
теперь при каждом скролле у вас в itemPosition всегда будет позиция текущей ячейки на экране
R.id.team
Политика на форуме запрещена

v_grechka
Сообщения: 20
Зарегистрирован: 09 авг 2012, 13:30

Re: Урок 42. Список - ListView

Сообщение v_grechka » 27 ноя 2012, 11:09

Не совсем понял, как данній код поможет мне переместится к нужной записи(например к последней)

Например, при нажатии короткого клика

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

OnItemClickListener itemListener = new OnItemClickListener() {

        	public void onItemClick(AdapterView<?> parent, View v,
        			int position, long id) {
        		// TODO Auto-generated method stub

        	
        		TextView textView = (TextView) v;
        		
        		[b]parent.setSelection(parent.getCount());[/b]
        		//textView.setTextColor(Color.YELLOW);
        		Abon_name=textView.getText().toString();
        		CallSmallDialog(id,textView.getText().toString());

        	}
        };
я перемещаюсь в конец списка. А если использовать перемещение в процедуре

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

 ListView listContent = (ListView)findViewById(R.id.listContent);
...........................................................................
  public void onButtonClick(View v) {
		switch (v.getId()) {

		case R.id.deleteall:
			ListContent.setSelection(listContent.getCount());
	
			/*
			 mySQLiteAdapter.deleteAll();			 
			updateList();
			*/
			break;	
..................
NillPointerException :(

v_grechka
Сообщения: 20
Зарегистрирован: 09 авг 2012, 13:30

Re: Урок 42. Список - ListView

Сообщение v_grechka » 27 ноя 2012, 11:34

c Nillpointer разобрался. оказывается за пределами процедуры oncreate в переменной listContent
уже не содержится ссылки на findViewById(R.id.listContent);
ее нужно було прописывать еще раз
т.е. сначала
listContent = (ListView)findViewById(R.id.listContent);
а потом
listContent.setSelection(listContent.getCount());

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

Re: Урок 42. Список - ListView

Сообщение rezak90 » 27 ноя 2012, 12:22

вы же писали:
Или же в диалоговом окне отредактировали элемент, пересоздали список и как переместится
к той записи, что мы редактировали?
при клике запоминаете айтем, при возврате с диалога делаете листу setPisition(id)
R.id.team
Политика на форуме запрещена

v_grechka
Сообщения: 20
Зарегистрирован: 09 авг 2012, 13:30

Re: Урок 42. Список - ListView

Сообщение v_grechka » 27 ноя 2012, 12:29

rezak90 писал(а):вы же писали:
Или же в диалоговом окне отредактировали элемент, пересоздали список и как переместится
к той записи, что мы редактировали?
при клике запоминаете айтем, при возврате с диалога делаете листу setPisition(id)
Разобрался. так и сделал

Stas18
Сообщения: 2
Зарегистрирован: 30 ноя 2012, 11:18

Re: Урок 42. Список - ListView

Сообщение Stas18 » 19 дек 2012, 12:32

Здравствуйте,подскажите пожалуйста как динамически изменить цвет текста 1..2..3х элементов ListView

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

String[] names = { "Иван", "Марья", "Петр", "Антон", "Даша", "Борис",
                          "Костя", "Игорь", "Анна", "Денис", "Андрей" };
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, names);
Допустим - Марья,Игорь,Андрей выводятся красным цветом, все остальное - зеленым

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Урок 42. Список - ListView

Сообщение damager82 » 24 дек 2012, 13:55

Stas18 писал(а):Здравствуйте,подскажите пожалуйста как динамически изменить цвет текста 1..2..3х элементов ListView
Чуть дальше, Урок 49.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

max546
Сообщения: 8
Зарегистрирован: 13 янв 2013, 21:41

Re: Урок 42. Список - ListView

Сообщение max546 » 13 янв 2013, 21:55

Здравствуйте, подскажите пожалуйста как программно добавить и отобразить элемент в списке, допустим, я нажимаю на кнопку и в списке появляется новая позиция с содержанием из переменной- x;. Желательно в коде, уже третий день по гуглам лазию, хотя сам понимаю что решение не такое и сложное. Спасибо

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

Re: Урок 42. Список - ListView

Сообщение rezak90 » 13 янв 2013, 22:48

max546 писал(а):Здравствуйте, подскажите пожалуйста как программно добавить и отобразить элемент в списке, допустим, я нажимаю на кнопку и в списке появляется новая позиция с содержанием из переменной- x;. Желательно в коде, уже третий день по гуглам лазию, хотя сам понимаю что решение не такое и сложное. Спасибо
для этого нужно менять данные с которыми связан адаптер, потом дать команду адаптеру сделать апдейт notifyDataSetChanged()
R.id.team
Политика на форуме запрещена

eternal_ego
Сообщения: 10
Зарегистрирован: 14 дек 2012, 05:19

Re: Урок 42. Список - ListView

Сообщение eternal_ego » 14 янв 2013, 03:42

Появился вопрос, связанный с цветами. К спискам напрямую не относится, просто возник, когда списком занимался :)

Вот есть фоновый элемент, цвет которого я заранее не знаю. На нём лежит другой элемент, который я хочу сделать примерно такого же цвета, как и фоновый, но чуть светлее или чуть темнее, в зависимости от ситуации. Т.е. по идее в рантайме беру цвет элемента, что-то с ним делаю, и присваиваю результат цвету другого. Звучит просто, и в Qt такое проворачивается так же просто, как и звучит. Но в андроиде я вижу, что если у меня есть view, я могу взять с него максимум Drawable объект. А из Drawable как вытащить color - непонятно. Вот если ColorDrawable - то можно, но у меня не он, да и ради него мин. версию API поднимать не хочется. Как же это провернуть всё-таки?

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

Re: Урок 42. Список - ListView

Сообщение rezak90 » 14 янв 2013, 08:52

eternal_ego getSolidColor()
R.id.team
Политика на форуме запрещена

Ответить