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

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

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

Изменение элемена ListView - Программирование Android

26.03.2013, 03:30. Просмотров 1046. Ответов 1
Метки нет (Все метки)

Добрый вечер. Стоит задача изменять текстовое поле всех элементов ListView, но как то не выходит достучаться даже до одного элемента списка. Пробовал получить View элемента с помощью getChildAt(position) (так советуют здесь), почему то возвращает null, короче я в растерянности что делать и куда бежать. Может у кого нить есть какие то свежие мысли по этому поводу:

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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package com.example;
 
import java.util.ArrayList;
import java.util.Timer;
import java.util.TimerTask;
 
import android.os.Bundle;
import android.app.Activity;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.ListView;
import android.widget.TextView;
 
public class MainActivity extends Activity {
    
    Menu menu;
    ArrayList<Item> list = new ArrayList<Item>();
    ListAdapter adapter;
    TextView counter;
    Timer timer = new Timer();
    ListView listView;
    
    int i = 0;
    
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView textView = (TextView) this.findViewById(R.id.name_textView);
        registerForContextMenu(textView);
            
        counter = (TextView) findViewById(R.id.counter_textView);
        listView = (ListView) findViewById(R.id.listView1);
        
        fillDateList();
        adapter = new ListAdapter(list, this);
        listView.setAdapter(adapter);
                
    }
    
    @Override
    protected void onPostCreate(Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState); 
        
        
        int ferst = listView.getFirstVisiblePosition();
        View v = listView.getChildAt(ferst);
        TextView date = (TextView) v.findViewById(R.id.date_textView);
        date.setText("www");
        
        //timer.schedule(new UpdateTime(),0, 1000);
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return false;
    }
    
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
            ContextMenuInfo menuInfo) {
        // TODO Auto-generated method stub
        super.onCreateContextMenu(menu, v, menuInfo);
    }
    
    
    void fillDateList() {
        for(int i = 0; i < 20; i++) {
            list.add(new Item("date" + i));
            
        }
    }
    
    class UpdateTime extends TimerTask {
        
 
        @Override
        public void run() {
            MainActivity.this.runOnUiThread(new Runnable() {
                
                @Override
                public void run() {
                     int visiblePosition = listView.getFirstVisiblePosition();
                     View v = listView.getChildAt(visiblePosition);
                     TextView dateTime = (TextView) v.findViewById(R.id.date_textView);
                     dateTime.setText("12");                    
                }
            });
 
        }
    }
        
    
}

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
package com.example;
 
import java.util.ArrayList;
 
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
 
public class ListAdapter extends BaseAdapter {
    
    ArrayList<Item> items = new ArrayList<Item>();
    Context ctx;
    LayoutInflater inflater;
    
    public ListAdapter(ArrayList<Item> items, Context ctx) {
        this.items = items;
        this.ctx = ctx;
        this.inflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }
    
    
 
    @Override
    public int getCount() {
        return items.size();
    }
 
    @Override
    public Item getItem(int position) {
        return items.get(position);
    }
 
    @Override
    public long getItemId(int position) {
        return position;
    }
 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = convertView;
        Item item =getItem(position);
        view = inflater.inflate(R.layout.item, null);
        ((TextView) view.findViewById(R.id.name_textView)).setText(item.name);
        ((TextView) view.findViewById(R.id.date_textView)).setText(item.toStringToday());       
        return view;
    }
    
    
 
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package com.example;
 
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
 
public class Item {
    String name;
    SimpleDateFormat formater = new SimpleDateFormat("hh:mm:ss");
    
    public Item(String name) {
        this.name = name;
    }
    
    String toStringToday() {
        return formater.format(new GregorianCalendar().getTime());
    }
 
}
Спасибо!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2013, 03:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Изменение элемена ListView (Программирование Android):

Изменение данных в ListView при вводе текста - Программирование Android
Есть активность с AutoCompleteTextView и ListView. В ListView данные выводятся через свой адаптер. Как сделать так чтобы при...

Изменение стиля текста в отдельно взятой ячейке ListView - Программирование Android
Народ, подскажите, плиз, как реализовать следующее: Имеется ListView с тремя ячейками, в которых указаны текстом дни рождения. Вопрос №...

ListView. После добавления кнопки перестал быть доступен сам ListView - Программирование Android
Кастомизировал ListView с помощью нескольких TextView. Но после того, как добавил ImageButton сам список стал недоступен для клика, а...

Listview вывод данных и переход по нажатию на другой Listview SQLite - Программирование Android
Доброго извините за название темы, долго не мог сформировать название, В общем у меня беда с пытаюсь написать программу где первый экран...

Данные из SQlite в ListView, обработка события ListView - Программирование Android
Ребят, есть БД, ListView. Надо при нажатии на строчку ListView вытащить данные int из БД. mList.setOnItemClickListener(new...

ListView, ToggleButton, SQLite, CursorAdapter. Как найти idItem в ListView, где была нажата ToggleButton? - Программирование Android
Добрый день. Затрудняюсь понять один момент: У меня есть ListView, который заполнен Items. Каждый Item - это свой XML. Пока...

1
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
26.03.2013, 15:33 #2
list.get(x).setName("new name");
adapter.notifyDataSetChanged();
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2013, 15:33
Привет! Вот еще темы с ответами:

Копирование данных из 1 listView во 2 listView - Программирование Android
Нужно что бы при нажатии на один элемент в первом ListView он копировался во второй ListView причём многократно.Но я использую...

Переход из Listview в Listview - Программирование Android
Как сделать, что бы когда нажимаешь в главном листвью на кнопку, открывалось новое нужное(т.е. то по которому тапнули) активити с другим...

Использование ListView в ListView - Программирование Android
Всем привет. Можете показать как использовать ListView в ListView, с заполнением как внешнего ListView, так и внутреннего причем с...

Добавление элемена в ListBox - C++ WinAPI
Здравствуйте, пишу программу для вывода нажатой клавиши в ListBox и столкнулся с такой проблемой: при добавлении в ListBox значения...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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