开发者

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

  1. Locimage(Image from ImageUrl)
  2. 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();
    }
}
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜