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

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

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

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

26.06.2014, 20:36. Просмотров 1181. Ответов 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 в один элемент списка.Здравствуйте, задача такая:
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2014, 20:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание View элементов из кода и размещение их в listview (Программирование Android):

Добавлене View элементов в ListView в зависимости от текста - Программирование Android
Здравствуйте, мне нужно, чтобы в зависимости от текста создавался тот или иной View элемент. Программа читала подряд элементы массива и...

Изменить расположение View элементов в активити из кода - Программирование Android
Подскажите пожалуйста, где посмотреть примеры как изменить расположение view элементов в активити из кода. Например сделать кнопку по...

Создание view элементов в отдельном потоке - Программирование Android
Беру данные из интернета и делаю блоки. Если информации довольно много то при запуске активности(где создаются эти блоки) сначала...

Navigation View and Toolbar? Внешный вид ListView - Программирование Android
Дело вот в чем... Присутствует активность в которой находятся следующие компоненты @Override protected void onCreate(Bundle...

Как переместить фокус на определённое view в listView - Программирование Android
Всех приветствую. Подскажите пожалуйста,как переместить фокус на итый элемент listview? Чтобы просто переместить фокус на какое-нибудь...

Как создать список (ListView) с динамическим количеством передаваемых View? - Программирование Android
Доброго времени суток! Такая проблема: Требуется создать список к примеру через SimpleAdapter в котором неизвестно сколько будет...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
YuraAAA
1574 / 1316 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
26.06.2014, 20:59 #2
Muhammad97, берём адаптер, в нём методе getView:

Java
1
2
3
4
5
if (mass[position].equals("[IMG]")) {
//инфлейтим одну
} else {
//инфлейтим вторую.
}
0
Muhammad97
10 / 10 / 1
Регистрация: 10.11.2013
Сообщений: 238
27.06.2014, 00:25  [ТС] #3
Именно с инфлейтом и getView я не могу добраться, если можно напишите полный код
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
27.06.2014, 09:30 #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);  
}
0
Muhammad97
10 / 10 / 1
Регистрация: 10.11.2013
Сообщений: 238
27.06.2014, 16:31  [ТС] #5
Не могли бы вы выложить код, где создается TextvVew или ImageView в зависимости от текста? Буду очень благодарен
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
27.06.2014, 17:58 #6
Muhammad97, а я что то не пойму, у Вас в одном элементе ListView и TextvVew и ImageView? Или они создаются программно? Если так, то не знаю.
0
Muhammad97
10 / 10 / 1
Регистрация: 10.11.2013
Сообщений: 238
30.06.2014, 19:04  [ТС] #7
Rube,мне нужно чтобы в зависимости от текста в пункт списки помещались картинка или текст. Никак не могу разобраться с этим. Проблемы с созданием TextView и ImageView из кода и размещением в ListView.
0
YuraAAA
1574 / 1316 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
01.07.2014, 10:57 #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);
    }
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.07.2014, 10:57
Привет! Вот еще темы с ответами:

Динамическое создание View - Программирование Android
Есть шаблон: &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; ...

Создание вкладки и размещение внутри элементов управления - C#
Добрый день! Есть табконтрол, при запуске программа должна проверять наличие определенной библиотеки и на основе хранящихся в ней данных...

Свойство View у ListView - Visual Basic .NET
Можно ли сделать как-нибудь, чтобы значки в ListView отображались с видом ПЛИТКА(Tile) как в проводнике WindowsXP или даже крупнее. Заранее...

Создание иерархического ListView (в первой колонке - дерево элементов) - C++ WinAPI
здарова всем! столкнулся с необходимостью создания ListView, в котором в первой колонке должно быть дерево элементов. вот картинка,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
01.07.2014, 10:57
Ответ Создать тему
Опции темы

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