2011-09-14 46 views
0

我想通过使用自定义列表视图来显示我的数组列表结果。在自定义列表视图中显示我的数组列表结果

现在我通过使用android布局显示我的结果。

setListAdapter(new StudentListAdapter(this,android.R.layout.simple_list_item_1, results)); 

我有两个字段显示

  1. Locimage(图片来源的ImageUrl)
  2. LOCNAME(并排)

文件在这里:ERROR/AndroidRuntime(335): Caused by: java.lang.NullPointerException

+0

它不会花费太多时间去对谷歌的结果,虽然。 .. –

回答

1

由于您使用的是自定义列表适配器,并且您已覆盖了getView方法我认为以下行:

setListAdapter(new StudentListAdapter(this,android.R.layout.simple_list_item_1, results)); 

应该是:

setListAdapter(new StudentListAdapter(this, results)); 
+0

感谢您的答案..得到了解决方案。还有一个我如何从Url在ImageView中显示图像。 – atluriajith

+0

如果这是你的问题的答案,而不是其他帖子,你应该打勾我的答案。 – C0deAttack

+0

哦!好吧,对不起,我刚刚开始在starckoverflow上发布问题。我怎样才能在Url的ImageView中显示图像。 – atluriajith

0

试试这个代码

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(); 
    } 
} 
}