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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Muhammad97
10 / 10 / 1
Регистрация: 10.11.2013
Сообщений: 238
#1

Создание View элементов из кода и размещение их в listview - Android

26.06.2014, 20:36. Просмотров 1147. Ответов 7
Метки нет (Все метки)

Здравствуйте, задача такая:

1) Есть массив строк. Программа читает поочереди элементы массива и проверяет его значение:
Если значение равно [IMG], то выводится картинка, а если [TXT] выводим TextView.
И так поочереди считываем весь массив и выводи все это на экран поочереди, например:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
//Массив
String mass[] = {"[IMG]", "[TXT]", "[IMG]"}
for (int i =0; i<mass.length; i++) {
 
if (mass[i] == [IMG]) {
//Ввыводим картинку
}
 
if (mass[i] == [TXT]) {
//Ввыводим TextView с текстом
}
 
}
2) После чего поместить все это в один элемент ListView. И так каждый раз:
считывать массив и выводить все View в один элемент списка.Здравствуйте, задача такая:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
26.06.2014, 20:59     Создание View элементов из кода и размещение их в listview #2
Muhammad97, берём адаптер, в нём методе getView:

Java
1
2
3
4
5
if (mass[position].equals("[IMG]")) {
//инфлейтим одну
} else {
//инфлейтим вторую.
}
Muhammad97
10 / 10 / 1
Регистрация: 10.11.2013
Сообщений: 238
27.06.2014, 00:25  [ТС]     Создание View элементов из кода и размещение их в listview #3
Именно с инфлейтом и getView я не могу добраться, если можно напишите полный код
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
27.06.2014, 09:30     Создание View элементов из кода и размещение их в listview #4
Вот пример метода getView, меняет цвет текста и чекает/скрывает чекбокс.
StringWrapper - класс описывающий элементы ListView, геттеры и сеттеры.
Java
1
2
3
4
5
6
7
8
9
10
11
final StringWrapper currentItem = getItem(i);
view = inflater.inflate(R.layout.row, null);  
if (version) {
    TextView.class.cast(view.findViewById(R.id.textName)).setTextColor(color);
}           
CheckBox check = (CheckBox)view.findViewById(R.id.checkBox1);
if (visible != false) {
    check.setChecked(currentItem.isCheck());  
} else {
    check.setVisibility(View.GONE);  
}
Muhammad97
10 / 10 / 1
Регистрация: 10.11.2013
Сообщений: 238
27.06.2014, 16:31  [ТС]     Создание View элементов из кода и размещение их в listview #5
Не могли бы вы выложить код, где создается TextvVew или ImageView в зависимости от текста? Буду очень благодарен
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
27.06.2014, 17:58     Создание View элементов из кода и размещение их в listview #6
Muhammad97, а я что то не пойму, у Вас в одном элементе ListView и TextvVew и ImageView? Или они создаются программно? Если так, то не знаю.
Muhammad97
10 / 10 / 1
Регистрация: 10.11.2013
Сообщений: 238
30.06.2014, 19:04  [ТС]     Создание View элементов из кода и размещение их в listview #7
Rube,мне нужно чтобы в зависимости от текста в пункт списки помещались картинка или текст. Никак не могу разобраться с этим. Проблемы с созданием TextView и ImageView из кода и размещением в ListView.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.07.2014, 10:57     Создание View элементов из кода и размещение их в listview
Еще ссылки по теме:

Android Navigation View and Toolbar? Внешный вид ListView
Android Программное добавление View элементов в Fragment
Android Создание стиля карточки в ListView
Как создать список (ListView) с динамическим количеством передаваемых View? Android
Android Как переместить фокус на определённое view в listView

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
01.07.2014, 10:57     Создание View элементов из кода и размещение их в listview #8
Muhammad97,

Адаптер
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
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
 
public class Adapter extends BaseAdapter {
 
    private String[] data;
    public static final String IMAGE = "IMG";
    public static final String TEXT = "TXT";
    private Context context;
 
    public Adapter(Context context) {
        this.context = context;
    }
 
    public void setData(String[] data) {
        this.data = data;
        notifyDataSetChanged();
    }
 
    @Override
    public int getCount() {
        return data != null ? data.length : 0;
    }
 
    @Override
    public String getItem(int position) {
        return data != null ? data[position] : null;
    }
 
    @Override
    public long getItemId(int position) {
        return position;
    }
 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        String currentItem = data[position];
        View targetView = View.inflate(context, R.layout.list_item, null);
        if (currentItem.contains(IMAGE)) {
            targetView.findViewById(R.id.imageView).setVisibility(View.VISIBLE);
            targetView.findViewById(R.id.textView).setVisibility(View.GONE);
        } else {
            targetView.findViewById(R.id.imageView).setVisibility(View.GONE);
            targetView.findViewById(R.id.textView).setVisibility(View.VISIBLE);
        }
        return targetView;
    }
}
list_item.xml

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="utf-8"?>
 
<RelativeLayout 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/textView" android:layout_centerVertical="true" android:layout_centerHorizontal="true"/>
    <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/ic_launcher"
            android:id="@+id/imageView" android:layout_alignTop="@+id/textView"
            android:layout_alignLeft="@+id/textView"/>
</RelativeLayout>
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="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/listView" android:layout_gravity="center_horizontal"/>
</LinearLayout>
MyActivity:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public class MyActivity extends Activity {
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ListView listView = (ListView) findViewById(R.id.listView);
        Adapter adapter = new Adapter(this);
        String mass[] = {"[IMG]", "[TXT]", "[IMG]"};
        listView.setAdapter(adapter);
        adapter.setData(mass);
    }
}
Yandex
Объявления
01.07.2014, 10:57     Создание View элементов из кода и размещение их в listview
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru