display my arraylist results in custom listview
I want to display my arraylist results by using custom list view.
for now i'm displaying my results by using android layout.
setListAdapter(new StudentListAdapter(this,android.R.layout.simple_list_item_1, results));
I've two fields to display
- Locimage(Image from ImageUrl)
- Locname (side by side)
files are here: ERROR/AndroidRuntime(335): Caused by开发者_如何转开发: java.lang.NullPointerException
Since you're using a custom list adapter and you have overridden the getView
method I think the following line:
setListAdapter(new StudentListAdapter(this,android.R.layout.simple_list_item_1, results));
Should be:
setListAdapter(new StudentListAdapter(this, results));
Refer API Demos for ListView with Multiple Views on it.
http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List14.html
Ultimately, you're going to need to override the getView() method of the adapter class you're using. Just a quick google search found plenty of examples.
Here's something really basic: http://sudarmuthu.com/blog/using-arrayadapter-and-listview-in-android-applications
And here's a more complex one: http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/
try this code
import java.util.ArrayList;
import android.app.ListActivity;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
public class FindPlaces extends Activity{
private SQLiteDatabase DbLoc;
ListView lv;
private ArrayList<Fields> results = new ArrayList<Fields>();
@Override
public void onCreate(Bundle savedInstance) {
super.onCreate(savedInstance);
setContentView(R.layout.places);
getallLocs();
displayLocs();
}
private void displayLocs() {
lv = (ListView)findViewById(R.id.listPlaces);
lv.setAdapter(new StudentListAdapter(this,results));
}
class StudentListAdapter extends BaseAdapter<Fields>{
private ArrayList<Fields> locationDetails;
private Context mContext;
public StudentListAdapter(Context context, ArrayList<Fields> results) {
// TODO Auto-generated constructor stub
System.out.println("Constructor StudentList Adapter...");
this.locationDetails = results;
this.mContext = context;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return locationDetails.size();
}
@Override
public Fields getItem(int position) {
// TODO Auto-generated method stub
return locationDetails.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return super.getItemId(position);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View v = convertView;
if(v == null){
LayoutInflater vl = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vl.inflate(R.layout.placeslist, null);
}
Fields o = locationDetails.get(position);
if (o != null) {
TextView iv = (TextView)v.findViewById(R.id.toptext);
TextView tv_sNo = (TextView)v.findViewById(R.id.toptext1);
iv.setText(o.getLocationName());
tv_sNo.setText(o.getLocationImage());
}
return v;
}
}
static class ViewHolder
{
TextView Locationname;
ImageView Locationimage;
}
private void getallLocs() {
// TODO Auto-generated method stub
try {
DatabaseHelper dbHelper = new DatabaseHelper(
this.getApplicationContext());
DbLoc = dbHelper.getWritableDatabase();
Cursor c = DbLoc.rawQuery("SELECT " + DatabaseHelper.LocationName+ " , " + DatabaseHelper.LocationImage + " FROM "
+ DatabaseHelper.LOCATIONTABLE , null);
if (c != null) {
if (c.moveToFirst()) {
do {
String LocationName= c.getString(c.getColumnIndex("LocationName"));
String Mobile = c.getString(c
.getColumnIndex("LocationImage"));
Fields p = new Fields(LocationName, Mobile);
results.add(p);
} while (c.moveToNext());
}
}
} catch (SQLiteException se) {
Log.e(getClass().getSimpleName(),
"Could not create or Open the database");
}
finally { if (DbLoc != null) DbLoc.execSQL("DELETE FROM " +
DatabaseHelper.FRIENDTABLE); DbLoc.execSQL("DELETE FROM " +
DatabaseHelper.LOCATIONTABLE);
DbLoc.execSQL("DROP TABLE IF EXISTS tablename"+ DatabaseHelper.FRIENDTABLE);
DbLoc.execSQL("DROP TABLE IF EXISTS tablename"+ DatabaseHelper.LOCATIONTABLE);
DbLoc.close();
}
}
}
精彩评论