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

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

Войти
Регистрация
Восстановить пароль
 
zhaksybaev
0 / 0 / 0
Регистрация: 30.05.2014
Сообщений: 5
#1

Использование элемента другого layout - Программирование Android

30.05.2014, 01:17. Просмотров 522. Ответов 9
Метки нет (Все метки)

Здравствуйте!
Проблема в следующем
Главный экран содержит ViewPager с PagerTabStrip. На них выводится лэйаут содержащий ListView (fragment.xml) и один итем листвью описан как отдельный лэйаут(list_item.xml). Мне нужно из класса выводящий листвью fragment.xml (т.е. Fragment1.java) изменить данные в list_item.xml

Пробовал:
Java
1
2
TextView textView = (TextView)getActivity().findViewById(R.id.textView1);
textView.setText("OKAY");
почему-то не работает. Как я понимаю все элементы должны быть доступны из getActivity(), так как оба лэйаута выводятся на один экран?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2014, 01:17     Использование элемента другого layout
Посмотрите здесь:

Использование разных onTouch для двух Layout элемента - Программирование Android
В одном Layout имеются два дочерних элемента LinearLayout. Как обработать метод onTouch для каждого отдельно? То есть листать первый и...

Редактирование элементов layout из другого потока - Программирование Android
Подскажите, как максимально просто редактировать элементы layout из другого потока. К примеру, есть код: new Thread(new Runnable()...

Как получить layout с другого пакета? - Программирование Android
Здравствуйте, делаю скин для приложения, вопрос состоїт в том могу ли я взять Layout з другого пакета, тойсть есть первая програма...

Проверка наличия элемента в layout - Программирование Android
Доброго времени суток. Подскажите - как провести проверку наличия элемента в коде. В моем случае необходимо провести проверку наличия...

Сдвиг элементов layout при добавлении нового элемента - Программирование Android
Добрый вечер! Вопрос в следующем: как запретить layout'y сдвигать другие элементы при добавлении нового? Данная ситуация наблюдается если...

At android.widget.LinearLayout.setChildFrame Layout в Layout-те - Программирование Android
Нужен совет бывалых. У меня есть активити которое запускается с мейн активити, на нем лежит Layout (горизонтальный) в котором 2й...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1566 / 1308 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
30.05.2014, 11:22     Использование элемента другого layout #2
zhaksybaev, а где адаптер?
zhaksybaev
0 / 0 / 0
Регистрация: 30.05.2014
Сообщений: 5
30.05.2014, 11:50  [ТС]     Использование элемента другого layout #3
Адаптер для вывода в ViewPager

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
package com.organizer;
 
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.util.Log;
 
public class TitleAdapter extends FragmentPagerAdapter {
private final String titles[] = new String[] { "Вкладка 1", "Вкладка 2", "Вкладка 3", "Вкладка 4", Вкладка 5", "Вкладка 6" };
private final Fragment frags[] = new Fragment[titles.length];
 
public TitleAdapter(FragmentManager fm) {
    super(fm);
    frags[0] = new FragmentView1();
    frags[1] = new FragmentView2();
    frags[2] = new FragmentView3();
    frags[3] = new FragmentView4();
    frags[4] = new FragmentView5();
    frags[5] = new FragmentView6();
    
}
 
@Override
public CharSequence getPageTitle(int position) {
    Log.v("TitleAdapter - getPageTitle=", titles[position]);
    return titles[position];
}
 
@Override
public Fragment getItem(int position) {
    Log.v("TitleAdapter - getItem=", String.valueOf(position));
    return frags[position];
}
 
@Override
public int getCount() {
    return frags.length;
}
}
Адаптер для вывода в ListView

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
ListView listView = (ListView) myView.findViewById(R.id.listView1);
        cursor = dbHelper.fetchAll();   
            
        // создаем массив списков
                mainList = new ArrayList<HashMap<String, Object>>();
                HashMap<String, Object> hm;
                
        while (cursor.moveToNext()){
            String name = cursor.getString(cursor
                    .getColumnIndex(DbAdapter.Name));
            hm = new HashMap<String, Object>();
            hm.put(TITLE, name); // Название
            hm.put(DESCRIPTION, "Описание"); // Время
            hm.put(ID, UID); // ID
            mainList.add(hm);
        }
        
            // Теперь создадим адаптер массива и установим его для отображения наших данных
 
        final SimpleAdapter adapter = new SimpleAdapter(getActivity(), mainList,
                    R.layout.list_item, new String[] { TITLE, DESCRIPTION, ID},
                    new int[] { R.id.text1, R.id.text2, R.id.ID });
            listView.setAdapter(adapter);
YuraAAA
1566 / 1308 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
30.05.2014, 11:56     Использование элемента другого layout #4
zhaksybaev,
Цитата Сообщение от zhaksybaev Посмотреть сообщение
(R.id.textView1
это ведь элемент адаптера? Вот в адаптере и меняйте. Вы не достучитесь до этого элемента из активити.
zhaksybaev
0 / 0 / 0
Регистрация: 30.05.2014
Сообщений: 5
30.05.2014, 12:40  [ТС]     Использование элемента другого layout #5
Возможно я не правильно задал вопрос.

Дело обстоит так:
в ListView (fragment.xml) есть Checkbox (list_item.xml). Так вот если чекбокс выбран нужно поменять строку в базе на "true". Как можно реализовать это?

Добавлено через 8 минут
Сделал примерно так:
Java
1
2
3
4
5
6
7
8
CheckBox checkBox = (CheckBox)getActivity().findViewById(R.id.checkBox1);
        checkBox.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                здесь записываю в базу
            }
        });
Программа вылетает. Это точно не из-за попытки записи в базу. Пробовал убрать строку где записывал в базу. Тоже вылетает.
Мне кажется что она не может найти элемент по ID
YuraAAA
1566 / 1308 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
30.05.2014, 13:03     Использование элемента другого layout #6
zhaksybaev, естественно не может. Это надо делать в адаптере.
zhaksybaev
0 / 0 / 0
Регистрация: 30.05.2014
Сообщений: 5
30.05.2014, 13:09  [ТС]     Использование элемента другого layout #7
А как ловить в адаптере setOnClickListener?
YuraAAA
1566 / 1308 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
30.05.2014, 14:08     Использование элемента другого layout #8
zhaksybaev, click на что?
zhaksybaev
0 / 0 / 0
Регистрация: 30.05.2014
Сообщений: 5
01.06.2014, 12:57  [ТС]     Использование элемента другого layout #9
на чекбокс
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2014, 08:53     Использование элемента другого layout
Еще ссылки по теме:

Не хочет работать в layout, но включается в layout-land - Программирование Android
доброе утро ! пишу первое приложение. обычный мейн.хмель выглядит вот так : &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;LinearLayout...

Лупа на layout - Программирование Android
Привет. В браузере наверняка все видели &quot;лупу&quot; когда не можете попасть по ссылке, браузер вам увеличивает эту область чтобы вы могли...

переходы layout - Программирование Android
У меня подключен такой инклюдик &lt;include layout=&quot;@layout/content_main&quot; /&gt; Я показываю там layout, но как мне кодом показать...

TextViews и Layout - Программирование Android
Здравствуйте! Имеется много генерируемых TextView. Как их можно поставить друг за дугом, что бы получился текст, как в обчной статье? ...


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

Или воспользуйтесь поиском по форуму:
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
02.06.2014, 08:53     Использование элемента другого layout #10
Цитата Сообщение от zhaksybaev Посмотреть сообщение
А как ловить в адаптере setOnClickListener?
В методе getView.
Yandex
Объявления
02.06.2014, 08:53     Использование элемента другого layout
Ответ Создать тему
Опции темы

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