2010-04-22 62 views
0

我有一个查询结果集,我喜欢先编辑,然后把它放到我的ListView。如果没有第一编辑我的数据,我可以用SimpleCursorAdapter这样的:多维数组到ListView ..怎么样?

ListAdapter adapter = new SimpleCursorAdapter(
    this, 
    R.layout.list_item, 
    mCursor, 
    new String[] { "address", "city" }, 
    new int[] { R.id.address, R.id.zip_city }); 
this.setListAdapter(adapter); 

但现在,我把一切都放在一个多维数组这样的:

if(mCursor.isFirst()) { 

     //create a new array 
     String[][] listData = new String[mCursor.getCount()][3]; 

     int i = 0; 
     do { 

      listData[i] = new String[] { 
       mCursor.getString(mCursor.getColumnIndex("address")), 
       mCursor.getString(mCursor.getColumnIndex("zip")) + " " + mCursor.getString(mCursor.getColumnIndex("city")), 
       calculateDistance(Double.parseDouble(mCursor.getString(mCursor.getColumnIndex("diff")))) 
       }; 

      i++; 

     } while(mCursor.moveToNext()); 

    } 

所以我的问题是现在,我也没办法如何把这个给我的ListView。有人可以帮我吗?对不起,我的英语和Java知识不好。 :)

回答

0

要么写自己的适配器类,扩展BaseAdapter,与您的阵列一起工作,或切换到不同的数据结构,如MatrixCursor

0

如何使用LISTVIEW用多维数组

家伙,最简单的方法如下 -

在调用活动,让我们把它叫做FirstActivity,你声明多维数组公共静态

public static MyArray[][];

在第二个活动,你指的这个数组使用 -

FirstActivity.MyArray

现在创建一个一维数组,使用一个循环例如

for(int i = 0; i < FirstActivity.MyArray.length; i++){ SingleArray[i] = FirstActivity.MyArray[i][0];}

从多维阵列读取只是一列然后使用适配器到列表绑定到SingleArray

setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, SingleArray));

只记得每次清除数组,因此它们不保留之前的值。

问候

克雷格Paardekooper