2010-12-28 3 views
0

열 데이터가 sqlite 데이터베이스에서 오는 두 개의 열을 listview에 표시하려면 어떻게해야합니까? 첫 번째 열은 TextView이고 다른 열은 EditView입니다. 아래 코드를 시도했습니다. 하지만 다음 예외가 있습니다어떻게 listview에 두 개의 열을 표시 할 수 있습니까? 그 열 데이터가 SQLite 데이터베이스에서 오는 것입니다

unable to start the activity ComponentInfo:java.lang.NullPointerException. 

코드는 아래와 같습니다.

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.categorynew); 
    lv = (ListView)findViewById(android.R.id.list); 
    getList(); 
} 

public void getList() 
{ 
    int x = 0; 
    cur=db.rawQuery("SELECT * FROM detaillist ORDER BY symbol",null); 
    ArrayList<String> al = new ArrayList<String>(); 
    ArrayList<String> al1 = new ArrayList<String>(); 
    cur.moveToFirst(); 
    while (cur.isAfterLast() == false) { 
     al.add(cur.getString(cur.getColumnIndex("symbol"))); 
     al1.add(cur.getString(cur.getColumnIndex("position"))); 

     cur.moveToNext(); 
    } 
    cur.close(); 
    String[] str = new String[al.size()]; 
    strArray = al.toArray(str); 
    String[] str1 = new String[al1.size()]; 
    strArray1 = al1.toArray(str1); 
    lv.setAdapter(new EfficientAdapter(this)); 
} 

private static class EfficientAdapter extends BaseAdapter { 
    static class ViewHolder { 
     TextView text; 
     EditText text2; 

    } 

    private LayoutInflater mInflater; 
    public EfficientAdapter(Context context) { 
     mInflater = LayoutInflater.from(context); 
    } 
    public int getCount() { 
     return symbols.size(); 
    } 
    public Object getItem(int position) { 
     return 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(android.R.layout.simple_list_item_1, null); 
      convertView = mInflater.inflate(R.layout.editcategorylist, null); 
      holder = new ViewHolder(); 

      holder.text = (TextView) convertView.findViewById(R.id.symbol); 
      holder.text2 = (EditText) convertView.findViewById(R.id.postion); 

      convertView.setTag(holder); 
     } else { 
      holder = (ViewHolder) convertView.getTag(); 
     } 

     holder.text.setText(strArray[position]); 

     Log.e("text",holder.text.toString()); 
     holder.text2.setText(strArray1[position]); 
     Log.e("text2",holder.text2.toString()); 

     return convertView; 
    } 
} 
+0

어떤 줄이 NullPointerException을 던집니까? –

답변

관련 문제