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

BaseAdapter - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Предотвратить выключение программы при загрузке и парсинге сайтов средствами Jsoup http://www.cyberforum.ru/android-dev/thread1819969.html
Есть вот такой код для загрузки и парсинга сайтов. Если сюда скормить левый адрес для загрузки или при обработки Jsoup будет непойми что, естественно, выползает ошибка и приложение крашится. public...
Программирование Android Push уведомления без сторонних сервисов Есть форма php, на которой располагается одна кнопка, при нажатии на эту кнопку на мобильный телефон (android) должно прийти push уведомление. Вопрос: можно ли это организовать без сторонних... http://www.cyberforum.ru/android-dev/thread1819927.html
Программирование Android Телефон в качестве ПУ для Arduino
В общем, идея в том, чтобы использовать телефон в качестве ПУ для Arduino. Сам модуль Bluetooth еще не пришел, поэтому "тренируюсь" на коннекте с другими андроидами. Взял пример программы отсюда....
Узнать количество строк ListView, которое помещается в Linear Layout Программирование Android
Подскажите плз. Как узнать какое целое кол-во строк listView может поместиться в Linear Layout. Если у мну такая разметка. <LinearLayout android:layout_weight="1" ...
Программирование Android Не находит файл http://www.cyberforum.ru/android-dev/thread1819727.html
Не могу понять, что не так в коде. Пишет, что файл не найден, хотя через файл экслорер в андроид студио он виден >>>: Error occured. java.io.FileNotFoundException: FileSend.txt: open failed: ENOENT...
Программирование Android Оценить время разработки серверной части Доброго времени суток! Сколько времени может занять создания серверной части обычного контентного приложения, для розмещения статтей? подробнее

Показать сообщение отдельно
AlexRu18
2 / 2 / 0
Регистрация: 29.01.2015
Сообщений: 101

BaseAdapter - Программирование Android

05.10.2016, 23:11. Просмотров 293. Ответов 7
Метки (Все метки)

Есть контейнер для фрагментов (container), есть фрагмент (fragment), есть BaseAdapter и Product
Я хочу сделать адаптер из списка в котором есть картинка, 1\2 TextView и кнопка.
Код нашёл в гугле, но не что-то у меня с методом fillData() поладить не удаётся, в чём может быть причина? И есть ли реализации данной задачи попроще?

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
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
 
import java.util.ArrayList;
 
public class Fragment extends Fragment{
 
    ArrayList<Product> products = new ArrayList<Product>();
    ChoiseAdapter boxAdapter;
 
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState){
        return inflater.inflate(R.layout.fragment, container, false);
 
        // создаем адаптер
        fillData();
        boxAdapter = new ChoiseAdapter(getContext(), products);
 
        // настраиваем список
        ListView lvMain = (ListView) container.findViewById(R.id.List);
        lvMain.setAdapter(boxAdapter);
    }
    // генерируем данные для адаптера
    void fillData() {
        for (int i = 1; i <= 20; i++) {
            products.add(new Product("Product " + i, i * 1000,
                    R.mipmap.header_logo));
        }
    }
}
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="horizontal">
    <ListView
        android:id="@+id/cyList"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1">
    </ListView>
 
</LinearLayout>
XML
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
39
40
41
42
43
44
45
46
47
48
49
50
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
 
    <LinearLayout
        android:id="@+id/cymLinearLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="horizontal">
 
        <ImageView
            android:id="@+id/ivImage"
            android:layout_width="200dp"
            android:layout_height="200dp"
            android:scaleType="fitCenter"
            android:src="@mipmap/ic_launcher"
            android:background="@android:color/background_dark">
        </ImageView>
 
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">
 
            <TextView
                android:id="@+id/tvDescr"
                android:layout_width="match_parent"
                android:layout_height="140dp"
                android:text=""
                android:textSize="20sp"
                android:background="@android:color/holo_blue_bright">
            </TextView>
 
            <Button
                android:id="@+id/chooseButton"
                android:text="@string/chooseButton"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_below="@+id/tvDescr"
                android:layout_alignParentLeft="false"
                android:layout_alignParentStart="false"/>
 
        </RelativeLayout>
 
    </LinearLayout>
 
</LinearLayout>
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public class Product {
 
    String cyName;
    int price;
    int cyImage;
 
    Product(String _cyName, int _price, int _cyImage) {
        cyName = _cyName;
        price = _price;
        cyImage = _cyImage;
    }
 
}
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
 
import java.util.ArrayList;
 
 
public class ChoiseAdapter extends BaseAdapter {
 
    Context ctx;
    LayoutInflater lInflater;
    ArrayList<Product> objects;
 
    ChoiseAdapter(Context contex, ArrayList<Product> products) {
        ctx = contex;
        objects = products;
        lInflater = (LayoutInflater) ctx
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }
 
    // кол-во элементов
    @Override
    public int getCount() {
        return objects.size();
    }
 
    // элемент по позиции
    @Override
    public Object getItem(int position) {
        return objects.get(position);
    }
 
    // id по позиции
    @Override
    public long getItemId(int position) {
        return position;
    }
 
    // пункт списка
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // используем созданные, но не используемые view
        View view = convertView;
        if (view == null) {
            view = lInflater.inflate(R.layout.cy_item, parent, false);
        }
 
        Product p = getProduct(position);
 
        // заполняем View в пункте списка данными из товаров: наименование
        // и картинка
        ((TextView) view.findViewById(R.id.tvDescr)).setText(p.cyName);
        ((ImageView) view.findViewById(R.id.ivImage)).setImageResource(p.cyImage);
 
        return view;
    }
 
    // товар по позиции
    Product getProduct(int position) {
        return ((Product) getItem(position));
    }
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru