Updating ArrayList with values from SQLite
Sorry if this question gets asked a lot, but I'm stumped and cannot find
anything that works for my issue. I am still new to Java programming, so
attempted to merge a tutorial into my existing project. I've got most of
it working, but I'm stumped on how to take string data from my SQLite
database and parse it into the ArrayList. So here's my code:
SQLView.java
//imports omitted
public class SQLView extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sqlview);
ArrayList<SearchResults> searchResults = GetSearchResults();
final ListView lv1 = (ListView) findViewById(R.id.ListView01);
lv1.setAdapter(new MyCustomBaseAdapter(this, searchResults));
// OnClickListener Omitted
}
private ArrayList<SearchResults> GetSearchResults(){
ArrayList<SearchResults> results = new ArrayList<SearchResults>();
SearchResults sr1 = new SearchResults();
sr1.setID("1");
sr1.setName("1");
sr1.setYear("1");
results.add(sr1);
sr1 = new SearchResults();
sr1.setID("2");
sr1.setName("2");
sr1.setYear("2");
results.add(sr1);
sr1 = new SearchResults();
sr1.setID("3");
sr1.setName("3");
sr1.setYear("3");
results.add(sr1);
return results;
}
}
MyCustomBaseAdapter.java
//imports omitted
public class MyCustomBaseAdapter extends BaseAdapter {
private static ArrayList<SearchResults> searchArrayList;
private LayoutInflater mInflater;
public MyCustomBaseAdapter(Context context, ArrayList<SearchResults>
results) {
searchArrayList = results;
mInflater = LayoutInflater.from(context);
}
public int getCount() {
return searchArrayList.size();
}
public Object getItem(int position) {
return searchArrayList.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.custom_row_view, null);
holder = new ViewHolder();
holder.txtID = (TextView) convertView.findViewById(R.id.id);
holder.txtName = (TextView) convertView.findViewById(R.id.name);
holder.txtYear = (TextView) convertView.findViewById(R.id.year);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.txtID.setText(searchArrayList.get(position).getID());
holder.txtName.setText(searchArrayList.get(position).getName());
holder.txtYear.setText(searchArrayList.get(position).getYear());
return convertView;
}
static class ViewHolder {
TextView txtID;
TextView txtName;
TextView txtYear;
}
}
SearchResults.java
//imports omitted
public class SearchResults {
private String id = "";
private String name = "";
private String year = "";
public void setID(String id) {
this.id = id;
}
public String getID() {
return id;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setYear(String year) {
this.year = year;
}
public String getYear() {
return year;
}
}
And finally this is what I'm working with from my database:
MYDB db = new MYDB(this);
db.open();
String dataID = db.getDataID();
String dataName = db.getDataName();
String dataYear = db.getDataYear();
db.close();
When I try changing SQLView.java to use the following, I get no errors but
just a blank holder...
sr1 = new SearchResults();
sr1.setID(dataID);
sr1.setName(dataName);
sr1.setYear(dataYear);
results.add(sr1);
No comments:
Post a Comment