0

Я пытаюсь создать простой ListFragment, я успешно выполнил его с использованием стандартной активности списка, но теперь я пытаюсь реализовать его с помощью ListFragments.Android Simple ListFragment с помощью SQLite

То, что я пытаюсь сделать, это отобразить данные SQLite в Listfragment. Как передать ListNotes в фрагмент Notes?

public class Notes extends Fragment { 

NotesControl control; 
DatabaseHelper help; 
SimpleCursorAdapter adapter; 

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_notes, container, false); 

    Cursor cursor = control.ListNotes(); 
    //Mapping the fields cursor to text views 
    String[] fields = new String[]{help.COLUMN_TITLE, help.COLUMN_DATE}; 
    int [] text = new int[] {R.id.item_title, R.id.item_date}; 
    adapter = new SimpleCursorAdapter(view.getContext(),R.layout.list_layout,cursor, fields, text); 
    ListView listView = (ListView) view.findViewById(android.R.id.list); 
    listView.setAdapter(adapter); 

    return view; 
} 

NotesControl

public Cursor ListNotes() { 

} 

Как я могу запросить это? Где я могу хранить данные БД, чтобы вернуться к моему списку?

+0

Пользовательский адаптер был бы хорошим способом начать ... – jvrodrigues

+0

@jvrodrigues NotesControl хранит все мои запросы к базе данных, что мой пользовательский адаптер будет удерживать ? мне нужен еще один xml-файл? у вас есть пример? – Jack

ответ

0

Попробуйте с помощью SimpleCursorAdapter:

SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
     android.R.layout.simple_list_item_1, 
     cursor, 
     new String[] { help.COLUMN_TITLE }, 
     new int[] { android.R.id.text1 }); 

ListView listView = (ListView) findViewById(R.id.list); 
listView.setAdapter(adapter); 

Только дело в том, что вам нужен столбец ID с именем «_id» на курсор для того, чтобы работать, так как изменить имя столбца, или сделать rawQuery() с 'SELECT' + help.NOTES_ID + 'AS _id ...'

+0

Вы можете написать полный запрос, пожалуйста? Пойдет ли это на мой onCreateView или onActivityCreated? Из кода это приведет только к возврату названия, но не к описанию? Нужен ли мне специальный адаптер для отправки описания – Jack

+0

, вы можете создать любой макет для элементов списка и использовать его вместо android.R.layout.simple_list_item_1. Массив String принимает столбцы курсора, а в массиве int [] вы помещаете идентификаторы представлений из созданного вами макета, чтобы поместить выбранные столбцы. Существует множество учебников по теме в Интернете и на stackoverflow, просто Google simplecursoradapter. –

Смежные вопросы