2011-09-14 16 views
0

私はarraylist結果をカスタムリストビューを使って表示したいと思います。私のarraylist結果をカスタムリストビューに表示

現在はアンドロイドのレイアウトを使用して結果を表示しています。

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

は私が

  1. Locimage(IMAGEURLからの画像)を表示するために2つのフィールドをした
  2. LOCNAME(サイドバイサイド)

ファイルはここにある:ERROR/AndroidRuntime(335): Caused by: java.lang.NullPointerException

+0

を試してみてくださいそれはしかしGoogleで結果を得るために多くの時間を取ることはありません。 .. –

答えて

1

カスタムリストアダプタを使用していて、getViewをオーバーライドしているため

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

であるべき:私は次の行が考える方法

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

あなたの答えをありがとう..解決策を得ました。もう1つ、ImageViewでURLからイメージを表示する方法があります。 – atluriajith

+0

あなたの質問に対する回答であれば、私の答えにチェックしてください。 – C0deAttack

+0

ああ!大丈夫、申し訳ありません、私はちょうどstarckoverflowに関する質問を投稿し始めました。 ImageViewの画像をURLからどのように表示できますか? – atluriajith

0

最終的に、あなたが使用しているアダプタクラスのgetViewメソッド()メソッドをオーバーライドする必要があるとしています。簡単なGoogle検索でたくさんの例が見つかりました。ここで

は本当に基本的な何か:http://sudarmuthu.com/blog/using-arrayadapter-and-listview-in-android-applications

そしてここで、より複雑なものだ:http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/

+0

彼はすでに 'getView()'をオーバーライドしています。 – C0deAttack

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(); 
    } 
} 
} 
関連する問題