У меня вопрос по поводу адаптеров для Android.
У меня есть класс, расширяющий BaseAdapter.Который в основном мой адаптер.Я открываю соединение с базой данных в этом адаптере и записываю в базу данных, когда пользователь нажимает кнопку.
Является ли это плохой практикой - открывать соединение с базой данных в классе адаптера?если да, то как мне преодолеть это?
Я не использую базу данных для запроса, я использую ее только для вставки значения, когда пользователь нажимает кнопку.
Вот кодсниппет.Я вырезал большую часть кода для краткости
@Override
public View getView(int position, View convertView, ViewGroup parent) {
String genre = "";
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.featured_tab_sublayout, null);
}
ImageView imgFavourite = (ImageView) convertView.findViewById(R.id.imgFavourite);
imgFavourite.setOnClickListener(favPicture);
imgFavourite.setTag(position);
return convertView;
}
OnClickListener favPicture = new OnClickListener() {
@Override
public void onClick(View v) {
int i = (Integer) v.getTag();
Radio rad = radios.get(i);
if(db.Exists(rad.getmStreamLink())){
showConfirmation(i,rad);
}else{
String genre = "";
if(rad.getGenre().size()>0){
for(String g: rad.getGenre()) {
genre += g + ",";
}
}
db.insertOrder(rad.getmName(), rad.getmDesc(), rad.getmLogo(),
genre, rad.getmCountry(), rad.getmCity(), rad
.getmStreamLink(), rad.getmTwitter(), rad
.getmFacebook(), rad.getmWebsite(), rad
.getmRadionomyID(), rad.getmAudienceRank());
ErrorDialog.show(context, resource.getString(R.string.alert_dialog_fav_added));
/*String name, String desc, String logo,
String genre, String country, String city, String stream_link,
String twitter, String facebook, String website, String radionomy,
String audience_rank*/
}
}
};