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

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

Войти
Регистрация
Восстановить пароль
 
lexus213
3 / 3 / 0
Регистрация: 25.06.2011
Сообщений: 72
#1

отображение Listview - Программирование Android

12.08.2013, 13:53. Просмотров 752. Ответов 2
Метки нет (Все метки)

Необходимо вывести строковый массив(listview_names) и осуществить поиск по его элементам...
код получился следующий:



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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
public class FragmentView3 extends Fragment {
 
    String[] listview_names = {"1","2","3","лол","лал","пример","доль"};
    
    
   public EditText et;
    public ListView lv;
    
     
    private ArrayList<String> array_sort;
    int textlength=0;
 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {   
        super.onCreate(savedInstanceState);
  //      setContentView(R.layout.one);
 
        View myView = inflater.inflate(R.layout.search, container, false);
         
        et  = (EditText)myView.findViewById(R.id.EditText01);
        lv  =   (ListView)myView.findViewById(android.R.id.list);
         
        array_sort=new ArrayList<String> (Arrays.asList(listview_names));
        setListAdapter(new bsAdapter(getActivity()));
 
 
        et.addTextChangedListener(new TextWatcher()
        {
            public void afterTextChanged(Editable s)
            {
                  // Abstract Method of TextWatcher Interface.
            }
            public void beforeTextChanged(CharSequence s,
                    int start, int count, int after)
            {
                // Abstract Method of TextWatcher Interface.
            }
            public void onTextChanged(CharSequence s,
                    int start, int before, int count)
            {
                textlength = et.getText().length();
                array_sort.clear();
                for (int i = 0; i < listview_names.length; i++)
                {
                    if (textlength <= listview_names[i].length())
                    {
                     
                         
                        if(listview_names[i].toLowerCase().contains(
                                et.getText().toString().toLowerCase().trim()))
                        {
                            array_sort.add(listview_names[i]);
                        }
                      }
                }
                AppendList(array_sort);
                }
            });
         
        lv.setOnItemClickListener(new OnItemClickListener() {
 
            public void onItemClick(AdapterView<?> arg0,
                                View arg1, int position, long arg3)
            {
                switch (position) {
                case 0:
                    Intent intent = new Intent(getActivity(), bbns.class);
                    startActivity(intent);
            }
            }
        });
        return myView;
    }
     
    public void AppendList(ArrayList<String> str)
    {
        setListAdapter(new bsAdapter (getActivity()));
    }
     
    private void setListAdapter(bsAdapter bsAdapter) {
        // TODO Auto-generated method stub
        
    }
 
    public class bsAdapter extends BaseAdapter
    {
        Activity cntx;
        public bsAdapter(Activity context)
        {
            // TODO Auto-generated constructor stub
            this.cntx=context;
 
        }
 
        public int getCount()
        {
            // TODO Auto-generated method stub
            return array_sort.size();
        }
 
        public Object getItem(int position)
        {
            // TODO Auto-generated method stub
            return array_sort.get(position);
        }
 
        public long getItemId(int position)
        {
            // TODO Auto-generated method stub
            return array_sort.size();
        }
 
        public View getView(final int position, View convertView, ViewGroup parent)
        {
            View row=null;
             
            LayoutInflater inflater=cntx.getLayoutInflater();
            row=inflater.inflate(R.layout.list, null);
             
            TextView   tv   =   (TextView)  row.findViewById(R.id.title);
             
            tv.setText(array_sort.get(position));
             
        return row;
        } 
          }
}
Проблема заключается в том, что в приложении он даже не отображается...Помогите разобраться...


Лэйаут, в котором будет отображаться листвью...


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
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
 
    <EditText
        android:id="@+id/EditText01"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint=""
        android:text="@string/search" />
 
    <ListView
        android:id="@+id/android:list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/EditText01"
        android:cacheColorHint="#00000000" >
 
    </ListView>
 
</RelativeLayout>
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.08.2013, 13:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос отображение Listview (Программирование Android):

Отображение записи ListView - Программирование Android
Делаю приложение для заметок. Заметки сохраняются в файле. Механизм открытия заметки для редактирования я представляю так: при клике на...

Отображение ListView во фрагменте - Программирование Android
Привет, всем! Буду очень признательна, если кто-нибудь сможет мне помочь разобраться. Я пишу программку для расписания занятий моего...

ListView изменить отображение строк - Программирование Android
Есть listView в него выводится массив String колличество символов в отлельных строках массива может быть значительным в listview они...

Неправильное отображение Listview создаваемого с SimpleAdapter - Программирование Android
Никак не получается сделать отображение таким как на картинке http://developer.alexanderklimov.ru/android/theory/simpleadapter1.png ...

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
anya14
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 9
14.08.2013, 16:55 #2
не знаю если честно...неужели никто помочь не может?
попробуй

Java
1
2
lv = (ListView) getView().findViewById(android.R.id.list);
lv.setAdapter(new bsAdapter(getActivity()));
Добавлено через 16 минут
хотя нет, это вряд ли поможет...
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
14.08.2013, 22:27 #3
подебагайте.

Добавлено через 1 минуту
п.с.: вместо постоянного
Java
1
setListAdapter(new bsAdapter (getActivity()));
для обновления используется
Java
1
adapter.notifyDataSetChanged();
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.08.2013, 22:27
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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