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

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

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

отображение Listview - Android

12.08.2013, 13:53. Просмотров 733. Ответов 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 HeaderView в ListView
Неправильное отображение Listview создаваемого с SimpleAdapter Android
Android Обновление ListView
Android ListView SubItem
RadioButton в ListView Android
Android Редактирование listview
Отображение ListView во фрагменте Android
ListView обновление Android
Android Изменить ListView
Android Не отображается ListView
ListView изменить отображение строк Android
Поиск по listview Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
anya14
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 9
14.08.2013, 16:55     отображение Listview #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     отображение Listview #3
подебагайте.

Добавлено через 1 минуту
п.с.: вместо постоянного
Java
1
setListAdapter(new bsAdapter (getActivity()));
для обновления используется
Java
1
adapter.notifyDataSetChanged();
Yandex
Объявления
14.08.2013, 22:27     отображение Listview
Ответ Создать тему
Опции темы

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