Я знаю, что есть много дубликатов с подобными проблемами, но просьбы читают мои и помогают мне.
Я очень новичок в разработке под Android, поэтому я их кодировал с помощью своих собственных инстинктов и ограниченного количества доступных руководств.,
Я хотел бы реализовать индексируемую (AZ) боковую панель, как в контактах.Все доступные сообщения являются строками массива с жестко запрограммированными записями, но мои нет, я использую DB Browser для SQLite, а затем заполняю все данные в просмотре карты.
Я ссылался (https://github.com/woozzu/IndexableListView/blob/master/src/com/woozzu/android/widget/IndexableListView.java) и перепробовал все упомянутые решения, связанные с этим постом, но безрезультатно. Я считаю, что я просто неправильно его кодировал, поскольку записи жестко закодированы, а мои нет.
В настоящее время я следую этому руководству, (http://androidopentutorials.com/android-listview-with-alphabetical-side-index/) и исправили некоторые коды здесь и там, которые, по моему мнению, необходимы для моей ситуации, такие как добавление моей базы данных в массив. Однако, есть несколько ошибок, и я не знаю, что делать.
Таким образом, я понятия не имею, что делать с этими ошибками. Пожалуйста, помогите мне и предоставьте, возможно, пошаговое руководство или, еще лучше, видео-гиды, чтобы я мог пройти через.
Вот что я пробовал:
Декларация
//indexable list view
Map<String, Integer> mapIndex;
List<String> dbList = new ArrayList<>();
OnCreate
//indexable list view
String[] dbList= database.getKeyword();
Arrays.asList(dbList);
dbList.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_expandable_list_item_1, dbList));
etIndexList(dbList);
displayIndex();
//indexable list view
private void getIndexList(String[] dbList){
mapIndex = new LinkedHashMap<String, Integer>();
for(int i = 0; i < dbList.length; i++){
String db = dbList[i];
String index = db.substring(0,1);
if(mapIndex.get(index) == null)
mapIndex.put(index, i);
}
}
private void displayIndex(){
LinearLayout indexLayout = (LinearLayout) findViewById(R.id.side_index);
TextView textView;
List<String> dbList = new ArrayList<String>(mapIndex.keySet());
for (String index : dbList){
textView = (TextView) getLayoutInflater().inflate(R.layout.side_index_item, null);
textView.setText(index);
textView.setOnClickListener(this);
indexLayout.addView(textView);
}
}
public void onClick(View view){
TextView selectedIndex = (TextView) view;
dbList.setSelection(mapIndex.get(selectedIndex.getText()));
}
Ошибки:
Если вам потребуется больше кодов, сообщите мне, и я обновлю этот пост.Заранее спасибо.