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

ListView и Fragment - Android

Восстановить пароль Регистрация
 
mcGurov
 Аватар для mcGurov
3 / 3 / 0
Регистрация: 30.07.2013
Сообщений: 98
20.06.2015, 21:31     ListView и Fragment #1
Активность выводит ListView со списком, который добавляет пользователь...
В Активити код работает, переделал под фрагмент, в нем что-то не так, пробовал и Fragment и ListFragment... Эклипс на строки не ругается, но при сборке Source not found. и вылазит подобное ActivityThread.performLaunchActivity(ActivityThread$ActivityClientRecord, Intent) line: 2059


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
import android.content.Intent;
import android.database.Cursor;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.CursorAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.AdapterView.OnItemClickListener;
 
 
 
public class AquaBaseFragment extends ListFragment {    
    
    public static final String ROW_ID = "row_id"; // ключ для передачи в другую
    // активность
private ListView aquariumListView; // встроенный в ListActivity элемент
// ListView
private CursorAdapter contactAdapter; // адаптер для ListView
    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {     
        
        View view = inflater.inflate(R.layout.aquarium_list, container, false);
        
        
        aquariumListView = getListView(); // доступ к встроенному ListView
        aquariumListView.setOnItemClickListener(viewContactListener);
        return view;
    }
 
    @Override
    public void onResume() {
        // отображение имени каждого контакта на TextView
                    // в разметке ListView
                    String[] from = new String[] { "name" };
                    int[] to = new int[] { R.id.contactTextView };
                    contactAdapter = new SimpleCursorAdapter(getActivity(),R.layout.contact_list_item, null, from, to);
                    setListAdapter(contactAdapter);
        super.onResume();
 
        // создает новый объект GetContactsTask и вызывает его
        new GetAquariumTask().execute((Object[]) null);
    }
 
    @Override
    public void onStop() {
        Cursor cursor = contactAdapter.getCursor(); // доступ к текущему Cursor
 
        if (cursor != null)
            cursor.deactivate(); // деактивирование
 
        contactAdapter.changeCursor(null); // у адаптера нет Cursor
        super.onStop();
    }
 
    // выполнение запроса к базе данных за пределами потока GUI
    private class GetAquariumTask extends AsyncTask<Object, Object, Cursor> {
        DatabaseConnector databaseConnector = new DatabaseConnector(
                getActivity());
 
        // выполнение доступа к базе данных
        @Override
        protected Cursor doInBackground(Object... params) {
            databaseConnector.open();
 
            // доступ к курсору, включая вызов всех контактов
            return databaseConnector.getAllAquariums();
            
            
        }
 
        // использование Cursor, возвращенного методом doInBackground
        @Override
        protected void onPostExecute(Cursor result) {
            contactAdapter.changeCursor(result); // установка Cursor адаптера
            databaseConnector.close();
            
            
        }
    }
 
 
    // слушатель события, которое отвечает на выбор имени контакта в ListView
    OnItemClickListener viewContactListener = new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            // создание Intent для запуска ViewContact Activity
            Intent viewContact = new Intent(getActivity(), ViewAquarium.class);
 
            // передача ID строки выбранного контакта в качестве
            // расширения объекта Intent
            viewContact.putExtra(ROW_ID, arg3);
            startActivity(viewContact); // start the ViewContact Activity
        }
    };
    
    
    
    
    
}
Почему ListView отказывается работать в фрагменте?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2015, 21:31     ListView и Fragment
Посмотрите здесь:

Android Fragment and context
set и get из fragment Android
DialogFragment в Fragment Android
Android Обновление fragment из другого fragment
Android TextView and Fragment
Fragment Android
Fragment и ListView Android
Список ListView из Fragment Android
Fragment и RoboSpice Android
WebView in Fragment Android
Android Список из fragment

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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