В моем приложении у меня есть список, содержащий сотни или строки. Это настраиваемый список с двумя текстовыми изображениями (описание &).Эффективный способ хранения большого количества строк в приложении android
В настоящее время у меня есть два строковых массива в strings.xml. Тот, который хранит все заголовки для списка и другого массива, в котором хранятся все описания для lsitview. Когда создается список, я заполняю listviews заголовком и описанием из каждого массива строк.
Проблема в том, что становится трудно управлять так много строк.
Было бы здорово, если бы кто-нибудь мог предложить любой другой эффективный способ достичь этого.
Причина, по которой я использую строки, состоит в том, что у нас есть очень похожие другие проекты, которые нужно делать дальше, где даже некоторые не-программисты могут заменить значения массива строк для нас. Вот почему мы не используем sqlite.
<string-array name="Headings">
<item>Heading1</item>
<item>Heading2</item>
.
.
</string-array>
<string-array name="Desc">
<item>Desc1</item>
<item>Desc2</item>
.
.
</string-array>
.java file
List<RowItem> rowItems= new ArrayList<RowItem>();
titles=getResources().getStringArray(R.array.Headings);
descriptions=getResources().getStringArray(R.array.Desc);
for (int j = 0; j < titles.length; j++) {
RowItem item = new RowItem(titles[j], descriptions[j]);
rowItems.add(item);
}
ListView lv=(ListView) rootView.findViewById(R.id.listView);
MySimpleArrayAdapter adapter = new MySimpleArrayAdapter(getActivity(),R.layout.list_item,rowItems);
lv.setAdapter(adapter);
class MySimpleArrayAdapter extends ArrayAdapter<RowItem> {
Context context;
public MySimpleArrayAdapter(Context context, int resourceId, List<RowItem> items) {
super(context, resourceId, items);
this.context = context;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
RowItem rowItem = getItem(position);
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.list_item, parent, false);
TextView textView1 = (TextView) rowView.findViewById(R.id.firstLine);
TextView textView2 = (TextView) rowView.findViewById(R.id.secondLine);
textView1.setText(rowItem.getTitle());
textView2.setText(rowItem.getDesc());
return rowView;
}
}
public class RowItem {
private String title;
private String desc;
public RowItem(String title, String desc) {
this.title = title;
this.desc = desc;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
@Override
public String toString() {
return title + "\n" + desc;
}
}
Пожалуйста, разместите код, чтобы мы могли хорошо понимать – LMK
@latifmohammadkhan код здесь не имеет отношения. – alfasin
вы должны зайти в базу данных sqlite. Сделайте один файл базы данных sqlite и поместите его в папку с ресурсами и получите доступ к нему в своем коде. –