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

Как сделать, чтобы кнопка добавлялась не в каждую строку ListView, а только в самый низ? - Android

Восстановить пароль Регистрация
Другие темы раздела
Android При проверке элемента массива на пустоту вылетает исключение http://www.cyberforum.ru/android-dev/thread1226840.html
Всем привет. Есть сервис с задачей (Runnable) определить геолокацию, которая запущена в основном потоке приложения (runOnUiThread()). В сервисе инициализирован строковый массив, который будет содержать геолокацию. Инициализируется он в методе onCreate() сервиса, передается в класс LocationListener через параметры конструктора и там, когда геолокация определится, заполняется. В другой...
Android Раздувание шаблона Подскажите, как оно происходит? Что вообще значит раздувание? Это создание в ресурсах экземпляра объекта описанного в xml? http://www.cyberforum.ru/android-dev/thread1226721.html
Не увеличиваются иконки на различных устройствах Android
Закинул в папки drawable иконки: ldpi-48; mdpi - 64; hdpi - 96; xhdpi - 128; xxhdpi - 192, но при тестировании на различных устройствах размер иконок не меняется. Помогите пожалуйста.
Создание ListView из EditText Android
Выдает ошибку в строке при создании адаптера. Пишет, что не распознает конструкцию ArrayAdapter Ниже прилагаю код. Список должен создаваться по мере ввода данных с клавиатуры. Пожалуйста, подскажите ошибку. @Override public void onClick(View v) { switch (v.getId()) { case R.id.button1: LinearLayout.LayoutParams lParams = new LinearLayout.LayoutParams(wrapContent,...
Android Создание ярлыков http://www.cyberforum.ru/android-dev/thread1226614.html
Имеется несколько XML - интерфейсов (форм). Нужно сделать так, чтобы была возможность добавления на главный экран телефона ярлыков, по нажатию которых открывалась определенная форма. Как можно реализовать подобное? Данная реализация имеется в приложение от ВК, когда можно добавить на главный экран ярлык диалога.
Android AndEngine Rounded rectangle Собственно как нарисовать квадрат с закругленныму углами? Просто квадрат рисую так bigRect = new Rectangle(twoPercent, twoPercent*10, CAMERA_WIDTH - twoPercent*2, CAMERA_HEIGHT - twoPercent*11, vbo); mainScene.attachChild(bigRect); Добавлено через 16 часов 12 минут наверх подробнее

Показать сообщение отдельно
Sonyk91
 Аватар для Sonyk91
104 / 104 / 4
Регистрация: 01.10.2012
Сообщений: 1,844
Завершенные тесты: 1
14.07.2014, 09:43  [ТС]     Как сделать, чтобы кнопка добавлялась не в каждую строку ListView, а только в самый низ?
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
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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
package com.example.myfovoritesongs;
 
 
import java.util.ArrayList;
import android.app.Activity;
import android.app.LoaderManager.LoaderCallbacks;
import android.content.Loader;
import android.database.Cursor;
import android.database.MatrixCursor;
import android.media.AudioManager;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.Toast;
 
 
 
public class MainActivity extends Activity implements LoaderCallbacks<Cursor> {
    public static final Integer BLUE = 2;   // Цвет выделения
    private final int SIZE_ICON = 64;       // Размер иконки в списке трэков (обложка)
    
    Sound sound;        
    ArrayList<String> trackList;            // Список трэков
    private static ListView lv;             // Список трэков
    private static View ItemLV;             // Выделенный трэк в списке
    private int idTrack;                    // id выделенного трэка
    
    private final ArrayList<ListUserItem> fetch = new ArrayList<ListUserItem>();
    
    ListAdapter adapter;                    // Адаптер для формирования пунктов списка трэков
    
    SimpleCursorAdapter mAdapter;
    MatrixCursor mMatrixCursor;
    Cursor mThumbCursor;
    Cursor mImageCursor;
    
    String mThumbImageId="";
    String mThumbImageData="";
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        Intialization();
        
        // AUDIO_SERVICE - служба для управления медиа 
        // (запись, воспроизведение музыки, видео, громкостью, режимами тел. звонков)
        AudioManager am = (AudioManager) getSystemService(AUDIO_SERVICE);
        sound = new Sound(am);
        String Path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC).getPath();
        // Загружаем список треков
        trackList = sound.GetListMusicFiles(Path);      
        
        
        
        FillItemsTrackList(Path);
        
        
        lv = (ListView) findViewById(R.id.item_list_view);
        lv.setItemsCanFocus(false);
        //выводим в листе
        adapter = new ListAdapter(this, R.id.item_list_view, fetch);
        lv.setAdapter(adapter);
        
        /*try {
            // Запускаем поток и передаем url адрес на картинку сегодняшнего дня
            new SetAdapterListView(lv).execute();
        } catch (Exception e) {
            ShowError("Произошла ошибка при загрузке списка треков\n" + e.getMessage());
        }*/
        
        ListItemClick(lv);  // обработка нажатий на пункт ListView (список треков)
    }
    
    // Класс загрузки изображения в отдельном потоке
    private class SetAdapterListView extends AsyncTask<Void, Void, Void>{
        private ListView lv;
        
        // Конструктор по умолчанию
        // @param imgView элемент для графики
        SetAdapterListView(ListView lv) {
            this.lv = lv;
        }
        
        /*@Override
        protected void onPreExecute() {
          super.onPreExecute();
        }*/
 
        @Override
        // Перегруженный метод для обработки задачи
        // @param url URL
        protected Void doInBackground(Void... fetch) {
            try {   
                lv.setAdapter(adapter);
            } catch (Exception e) {
                Log.e("Error", e.getMessage());
                e.printStackTrace();
            }
            return null;
        }
        
        /*@Override
        // Перегруженный метод вызывается в конце выполнения задачи
        protected void onPostExecute(Void result) {}*/
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
 
    /**
     * A placeholder fragment containing a simple view.
     */
    /*public static class PlaceholderFragment extends Fragment {
 
        public PlaceholderFragment() {
        }
 
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_main, container,
                    false);
            
            return rootView;
        }
        
    }*/
    
    /*
     * Событие возникает при нажатии элементы активити
     */
    public void onClick(View view){
        switch(view.getId()){
            case R.id.button_start:
                String Path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC).getPath();
                ClickStart(view, Path); break;
            case R.id.button_stop:
                
                break;
            case R.id.button_prev_save:
                
                break;
            case R.id.button_prev:
                
                break;
        }
    }
    
    /*
     * Обработка события элемента списка Listview
     */
    private void ListItemClick(ListView lv) {
        lv.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
                try{
                    Log.d("Проверка клика по ListView Item", "itemClick: position = " + position + ", id = "
                            + id + "Track = " + trackList.get((int)id));
                    //view.setBackgroundColor(3);
                    view.setSelected(true);
                    ItemLV = view;
                    idTrack = (int)id;
                }
                catch(Exception exp){
                    ShowError("Произошла ошибка при выборе трека\n" + exp.getMessage());
                }
            }
 
 
          });
        
        lv.setOnItemSelectedListener(new OnItemSelectedListener() {
            public void onItemSelected(AdapterView<?> parent, View view,
                int position, long id) {
              Log.d("Select", "itemSelect: position = " + position + ", id = "
                  + id);
              
            }
 
            @Override
            public void onNothingSelected(AdapterView<?> arg0) {
                // TODO Auto-generated method stub
                
            }
        });
    }
 
    /*
     *  Заполнение списка трэк листа (listView)
     *  @param путь к директории с музыкой (имя обложки = "имя трэка.jpg")
     *  @return ArrayList<ListUserItem> fetch -  глобавльный массив заполненых треков (пуктов Listview)
     */
    private void FillItemsTrackList(String Path){
        int id = 0;
        for(int i = 0; i < trackList.size(); i++){
            String trakName = trackList.get(i);
            ListUserItem lui = new ListUserItem(String.valueOf(id), trakName, 
                    Path + "/" + trakName + ".jpg", SIZE_ICON);
            fetch.add(lui);
        }
    }
    
    /*
     * Обработка нажатия кнопки Start
     */
    private void ClickStart(View view, String path){
        if(((Button) view).getText() == "Start"){
            if(idTrack != -1){
                ((Button) view).setText("Pause");
                sound.Start(path + "/" + trackList.get(idTrack) + ".mp3");
            }
            else{
                ShowError("Выберете композицию для воспроизведения");               
            }
        }
        else{
            ((Button) view).setText("Start");
        }       
    }
    
    private void Intialization(){
        idTrack = -1;
    }
    
    // Метод выводит, на короткое время, сообщение на экран
    // @param message сообщение для вывода
    private void ShowError(String message){
        Toast toast = Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT);
        toast.setGravity(Gravity.CENTER, 0, 0);
        toast.show();
    }
    
    @Override
    public void onLoaderReset(Loader<Cursor> arg0) {
        // TODO Auto-generated method stub
        
    }
 
    @Override
    public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
        // TODO Auto-generated method stub
        return null;
    }
 
    @Override
    public void onLoadFinished(Loader<Cursor> arg0, Cursor arg1) {
        // TODO Auto-generated method stub
        
    }
}
 
Текущее время: 00:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru