Форум программистов, компьютерный форум CyberForum.ru

Кастомизация ListView - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Не могу найти ошибку в коде для apk приложения http://www.cyberforum.ru/android-dev/thread1067052.html
Начал изучать Java и написание под Андроид. Eclipse с модулем имеется. Простая программка: ToggleButton, от состояния которого меняется текст в текстовой вьюхе. Делал по урокам, приложение запускается, текст не выводится, где я накосячил? active_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" ...
Android Пометить Selected в ListView через Selector Глючит! Гуру, помогите! Задача такая: Нажимаю на строку в списке Она выделяется через селектор А на отдельную кнопку пишется текст из выбраной/нажатой строки Написал селектор с 4мя позициями - обычная, выделеная, нажатая новая/обычная, нажатая выделения. Успешно нажимается. Но не фиксируется "нажатость" Обрабатываю нажатия на сам список для отрисовки нажатого на кнопке http://www.cyberforum.ru/android-dev/thread1067012.html
Android возможности датчика освещенности
Добрый день. Возможно ли используя датчик освещенности смартфона (или камеры?) измерить уровень пульсаций светового потока в процентах? В простейшем случае световой поток представляет из себя постоянную составляющую и синусоиду с частотой 50Гц. В худшем случае, форма пульсаций может быть сложнее, но частотные составляющие выше 300Гц могут не учитываться. Для ясности предлагаю остановиться...
Обработка свайпа в ListView Android
Добрый день, Мне нужно сделать удаление элементов из ListView по свайпу. Делаю так: lv.setOnTouchListener(new View.OnTouchListener() { float x1 = Float.NaN, y1 = Float.NaN, x2=Float.NaN, y2=Float.NaN; static final int delta=40; //int ItemPosition; @Override public boolean onTouch(View view, MotionEvent event) {
Android Кто чем пользуется для разработки приложений под Андроид? http://www.cyberforum.ru/android-dev/thread1066401.html
Всем доброго времени суток! Вопрос немного нубный, но тем не менее... Хотел бы начать разрабатывать ПО под Андройд. Вроде взял хорошую книгу П. Дейтела "Android для программистов Создаём приложения" издательство Питер. Читаю много в этой книге...вроде понимание появляется что и как... хотел что-то руками сдлать наипростейшее типа "Hello Word"))
Android Шаринг Facebook Привет. Помогите с шарингом Facebook. Как сделать авторизацию. Где должен быть app id? подробнее

Показать сообщение отдельно
YuraAAA
 Аватар для YuraAAA
1564 / 1306 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
10.01.2014, 17:15     Кастомизация ListView
VictorAkira, Нет ничего проще

1. Создаём класс обёртку, чтобы было удобно работать с двумя текстовыми объектами, это нам поможет дальше:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class StringWrapper {
     private String mTitle;
     private String mText;
 
    public StringWrapper(String mTitle, String mText) {
        this.mTitle = mTitle;
        this.mText = mText;
    }
 
    public StringWrapper() {
    }
 
    public String getTitle() {
        return mTitle;
    }
 
    public void setTitle(String mTitle) {
        this.mTitle = mTitle;
    }
 
    public String getText() {
        return mText;
    }
 
    public void setText(String mText) {
        this.mText = mText;
    }
}
2. Не будем пользоваться уже готовыми адаптерами, напишем свой (для адаптера понадобится layout)

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public class CustomAdapter extends BaseAdapter {
 
    private List<StringWrapper> data = new ArrayList<StringWrapper>();  //Наша коллекция
    private LayoutInflater inflater;
 
    public CustomAdapter(Context mContext) {
        inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); //Инфлейтер чтобы получить View из XML
    }
 
    public void setData(List<StringWrapper> data) {
        this.data = data;
    }
 
    @Override
    public int getCount() {
        return data.size();
    }
 
    @Override
    public StringWrapper getItem(int i) {
        return data.get(i);
    }
 
    @Override
    public long getItemId(int i) {
        return i;
    }
 
    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        view = inflater.inflate(R.layout.simplt_list_item, null);
        StringWrapper currentItem = getItem(i);
        TextView.class.cast(view.findViewById(R.id.txt_text)).setText(currentItem.getText());
        TextView.class.cast(view.findViewById(R.id.txt_title)).setText(currentItem.getTitle());
        return view;
    }
 
}
и простейший layout (simple_list_item.xml)
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="utf-8"?>
 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">
 
    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="New Text"
            android:id="@+id/txt_title"/>
    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="New Text"
            android:id="@+id/txt_text"/>
</LinearLayout>
3. Всё, теперь можно использовать всю эту кашу. Кинем listview на активити:

main.xml

XML
1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
        >
    <ListView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/mylist"/>
</LinearLayout>
сама активити:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class MyActivity extends Activity {
 
    private ListView listView;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        listView = (ListView) findViewById(R.id.mylist);
        initData();
    }
 
    void initData() {
        CustomAdapter customAdapter = new CustomAdapter(this);
        List<StringWrapper> wrapperList = new ArrayList<StringWrapper>();
        wrapperList.add(new StringWrapper("Title1", "Text1"));
        wrapperList.add(new StringWrapper("Title2", "Text2"));
        wrapperList.add(new StringWrapper("Title3", "Text3"));
        wrapperList.add(new StringWrapper("Title4", "Text4"));
        wrapperList.add(new StringWrapper("Title5", "Text5"));
        customAdapter.setData(wrapperList);
        listView.setAdapter(customAdapter);
        customAdapter.notifyDataSetChanged();
    }
 
}
 
Текущее время: 06:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru