Урок 109. Android 3. Fragments. ListFragment - список

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

Re: Урок 109. Android 3. Fragments. ListFragment - список

Сообщение rezak90 » 02 июн 2013, 19:56

мы же можем узнать высоту одной ячейке, соответственно умножаем высоту одной на количество ячеек и далее получаем необходимую высоту которую задаём listview
но зачем это? если можно сделать listview высоту wrap_content и он сам подстроится
R.id.team
Политика на форуме запрещена

Тёмыч
Сообщения: 5
Зарегистрирован: 01 июн 2013, 17:00

Re: Урок 109. Android 3. Fragments. ListFragment - список

Сообщение Тёмыч » 02 июн 2013, 21:46

Понял, что не так объясняю.)
Мне как раз и надо список с заданным количеством ячеек..

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

Re: Урок 109. Android 3. Fragments. ListFragment - список

Сообщение Foenix » 02 июн 2013, 23:16

Тёмыч писал(а):Понял, что не так объясняю.)
Мне как раз и надо список с заданным количеством ячеек..
да данные генерируй просто, в массиве или базе данных - id от 0 до N, где N - число заданное пользователем. НУ а значения элементов - или слова какие-то или цифры.. или вообще пустые.. не пойму почему это проблема какая-то?
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: Урок 109. Android 3. Fragments. ListFragment - список

Сообщение rezak90 » 03 июн 2013, 00:05

Тёмыч писал(а):Понял, что не так объясняю.)
Мне как раз и надо список с заданным количеством ячеек..
я уже гвоорил что количество ячеек зависит от входных данных в адаптер, будет там массив из 10 значений - будет 10 ячеек
R.id.team
Политика на форуме запрещена

Тёмыч
Сообщения: 5
Зарегистрирован: 01 июн 2013, 17:00

Re: Урок 109. Android 3. Fragments. ListFragment - список

Сообщение Тёмыч » 03 июн 2013, 00:21

Спасибо)

kornerr
Сообщения: 2
Зарегистрирован: 20 июн 2013, 14:38

Re: Урок 109. Android 3. Fragments. ListFragment - список

Сообщение kornerr » 20 июн 2013, 14:44

Скажите, пожалуйста, как сделать так, чтобы выделение сохранялось на элементе при использовании android.R.layout.simple_list_item_activated_1? У меня на Android 4.1.1 и 4.0.4 выделение есть, пока есть касание, а когда отпускаешь - пункт не выделен.
Фрагмент:

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

package com.example;

import android.app.ListFragment;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MyListFragment extends ListFragment {
    String data[] = new String[]{"one", "two", "three"};

    @Override
    public void onActivityCreated(Bundle savedInstanceState)
    {
        super.onActivityCreated(savedInstanceState);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(
            getActivity(),
            android.R.layout.simple_list_item_activated_1,
            data);
        setListAdapter(adapter);
        getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
    }
}
Пробовал с и без вызова setChoiceMode.
Цель: сделать левую панель, как в Настройках.

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

Re: Урок 109. Android 3. Fragments. ListFragment - список

Сообщение Foenix » 20 июн 2013, 14:51

А что тогда Preferences шаблон не юзать?

А вообще про выделение уже было, сто раз объясняла, поищи по форуму
R.id.team

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

kornerr
Сообщения: 2
Зарегистрирован: 20 июн 2013, 14:38

Re: Урок 109. Android 3. Fragments. ListFragment - список

Сообщение kornerr » 20 июн 2013, 15:00

Попробую Preferences. Спасибо.

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

Re: Урок 109. Android 3. Fragments. ListFragment - список

Сообщение Foenix » 20 июн 2013, 15:01

Пожалуйста!
R.id.team

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

wasil5
Сообщения: 5
Зарегистрирован: 14 дек 2012, 17:44

Re: Урок 109. Android 3. Fragments. ListFragment - список

Сообщение wasil5 » 02 июл 2013, 15:18

Выложите плз вторую часть урока (не разобрался как сделать выбор одиночный или множественный) как в уроке 43

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

Re: Урок 109. Android 3. Fragments. ListFragment - список

Сообщение damager82 » 08 июл 2013, 13:43

wasil5 писал(а):Выложите плз вторую часть урока (не разобрался как сделать выбор одиночный или множественный) как в уроке 43
Акутально еще?
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Markevich
Сообщения: 6
Зарегистрирован: 10 июл 2013, 00:26

Re: Урок 109. Android 3. Fragments. ListFragment - список

Сообщение Markevich » 22 авг 2013, 11:48

Подскажите пожалуйста, каким образом можно менять свойства фрагмента?
Т.е. например изменить его ширину(высоту), динамически в работающем приложении. Именно не удалять, а по нажатии кнопки он появлялся, или исчезал.
Или направте на урок в котором это есть. Менять представление(например кнопку), проблем нет. А изменение параметров фрагмента, или лайоута не могу понять.

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

Re: Урок 109. Android 3. Fragments. ListFragment - список

Сообщение Mikhail_dev » 22 авг 2013, 11:55

Во фрагменте есть метод getView, в котором можно менять любые параметры вьюшки, т.е. представления фрагмента.

Аватара пользователя
Владимир G
Сообщения: 20
Зарегистрирован: 18 сен 2013, 16:30

Re: Урок 109. Android 3. Fragments. ListFragment - список

Сообщение Владимир G » 26 сен 2013, 14:38

как сделать выбор одиночный или множественный в списке и как получить доступ к списку в ListFragment используя метод getListView ?

AGreen
Сообщения: 2
Зарегистрирован: 05 ноя 2013, 19:40

Re: Урок 109. Android 3. Fragments. ListFragment - список

Сообщение AGreen » 05 ноя 2013, 20:51

Доброе время суток!

Посоветуйте, пожалуйста, что выбрать в качестве отображения списка?
Исходные данные:
Форма заполняется набором данных и все через провайдер записывается в БД. Так же через провайдер читаю в FragmentList.
Но данные в таблицу пишутся сразу потоком, а мне хочется сделать промежуточную обработку информации перед выводом в таблицу (сортировка данных, добавление рисунка в зависимости от значения поля в БД). Понимаю, что необходим промежуточный буфер в виде массива или какой-то другой инструмент для вывода.
Кто что может порекомендовать?

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

Re: Урок 109. Android 3. Fragments. ListFragment - список

Сообщение Foenix » 05 ноя 2013, 21:01

Сортировка делается при запросе в бд, рисунки - в адаптере. Имхо тут изобретать недолго - курсор-адаптер и дело с концом.
R.id.team

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

AGreen
Сообщения: 2
Зарегистрирован: 05 ноя 2013, 19:40

Re: Урок 109. Android 3. Fragments. ListFragment - список

Сообщение AGreen » 10 ноя 2013, 15:23

Foenix, спасибо за ответ.

При работе со списками возникла необходимость делать разные списки для разных активити.
Насколько я понял, строка списка формируется содержимым item.xml и это имя используется списком по умолчанию.
Как быть с несколькими списками с разным описанием столбцов, если item.xml создать в приложении только один, ввиду его уникальности имени?

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

Re: Урок 109. Android 3. Fragments. ListFragment - список

Сообщение Foenix » 10 ноя 2013, 18:05

item затем ищется в той xml, которую вы инфлейтили в активити.
R.id.team

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

Аватара пользователя
vvSector
Сообщения: 3
Зарегистрирован: 21 сен 2013, 19:09

Re: Урок 109. Android 3. Fragments. ListFragment - список

Сообщение vvSector » 28 ноя 2013, 05:45

kornerr писал(а):Скажите, пожалуйста, как сделать так, чтобы выделение сохранялось на элементе при использовании android.R.layout.simple_list_item_activated_1?
Владимир G писал(а):как сделать выбор одиночный или множественный в списке и как получить доступ к списку в ListFragment используя метод getListView ?
Попробуйте так:
MainList.java

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

ListView listView;
@Override
public void onActivityCreated(Bundle savedInstanceState) {

	super.onActivityCreated(savedInstanceState);

	ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
			 android.R.layout.simple_list_item_activated_1, data);
	
	setListAdapter(adapter);
		
	// Включение возможности списка запоминать текущую выбранную позицию.
	listView = getListView();
	listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
}

sanSagittarius
Сообщения: 8
Зарегистрирован: 27 окт 2014, 11:35

Re: Урок 109. Android 3. Fragments. ListFragment - список

Сообщение sanSagittarius » 05 ноя 2014, 14:51

Ребята, помогите, пожалуйста, разобраться по теме урока. Совершенно отчетливо отдаю себе отчет в своей дикой криворукости, ибо только начинаю погружаться тему программерства для Андроид.

Суть вопроса.
Хочу добавить к ListFragment возможность вводить данные (в SQLite) и отображать их в списке ниже. Для этого добавил поле ввода текста и кнопку добавления в БД. Текст main.xml привожу здесь:

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

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <EditText
        android:id="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="text"
        android:text="@string/edit_record" >
        <requestFocus />
    </EditText>
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/add_record" />
    <fragment
        android:name="ru.startandroid.develop.p1091listfragment.MainList"
        android:layout_width="match_parent"
        android:layout_height="match_parent" android:id="@+id/fragment1">
    </fragment>
</LinearLayout>
Для работы с БД создал класс DB.java (взял из соответствующих уроков). После чего пытаюсь обратиться к полям ввода для последующей передачи введенных данных в БД. И вот здесь у меня грандиозный затык случился - не могу из MainActivity.java корректно обратиться к полю editText1:

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

public class MainActivity extends Activity {
	DB db;
	Cursor cursor;
		
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
        //
        /** Called when the activity is first created. */
        /** public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);*/

          // открываем подключение к БД
          db = new DB(this);
          db.open();

          // получаем курсор
          cursor = db.getAllData();
        
    }
   
    // обработка нажатия кнопки
    public void onButtonClick(View view) {
    
    	 // создаем объект для данных (МОЙ)
        ContentValues cv = new ContentValues();
    	
    	// получаем данные из полей ввода - НЕ УДАЕТСЯ КОРРЕКТНО ПРОПИСАТЬ ПОЛЕ ВВОДА!
    	String name = R.id.editText1;
        //String name = findViewById(R.id.editText1);
    	
    	// подготовим данные для вставки в виде пар: наименование столбца - значение
        cv.put("name", name);
    	
    // добавляем запись
    	db.addRec("новый текст " + cv, R.drawable.ic_launcher);
    	
      // обновляем курсор
      //cursor.requery();
    }
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}
Подскажите, плииз, как обратиться к полю.

Ответить