2-D String从函数(android)返回后返回null值?

时间:2016-07-22 17:05:24

标签: android multidimensional-array sqliteopenhelper

我在android中实现SQLite以使用2-d字符串获取所有行数据。但是除了最后一个索引的值

之外,字符串给我一个空值

我写的代码是为了获取表的所有数据

public String[][] getAllData(){
    MyDBHelper myDBHelper=new MyDBHelper(context);
    SQLiteDatabase db=myDBHelper.getWritableDatabase();
    String columns[]={MyDBHelper.UID, MyDBHelper.USERNAME, MyDBHelper.MOBILE,MyDBHelper.EMAIL};
    Cursor cursor=db.query(MyDBHelper.TABLE_NAME,columns,null,null,null,null,null);

    int index_username=cursor.getColumnIndex(MyDBHelper.USERNAME);
    int index_mobile=cursor.getColumnIndex(MyDBHelper.MOBILE);
    int index_email=cursor.getColumnIndex(MyDBHelper.EMAIL);
    Log.i("tag",Integer.toString(cursor.getCount()));
    String strData[][]=new String[cursor.getCount()][3];
    while(cursor.moveToNext()){

        int index=0;
        Log.i("tag",cursor.getString(index_username));
        strData[index][0]=cursor.getString(index_username);
        strData[index][1]=cursor.getString(index_mobile);
        strData[index][2]=cursor.getString(index_email);

        Log.i("tag",strData[index][0]+"data");
        index++;
    }
    return strData;
}

调用方法的代码

public void getData(){
    String data[][]=myDBAdaptor.getAllData();

    Log.i("tag", Integer.toString(data.length));
    for(int i=0;i<data.length;i++) {
        //Log.i("tag",data[i][0]);
        String username=data[i][0];
        String mobile=data[i][1];
        String email=data[i][2];
        DataProvider dataProvider= new DataProvider(username,mobile,email);
            listDataAdaptor.add(dataProvider);

    }
}

问题 假设strData = {{&#34; abc&#34;,&#34; 123&#34;,&#34; xyz&#34;},{&#34; efg&#34;,&#34; 456&# 34;,&#34; PQR&#34;},{&#34; MNO&#34;&#34; 789&#34;&#34; FGH&#34;}};

执行此声明后  数据[] [] = mydBAdaptor(); 数据的价值是打印 数据[] [] = {{NULL,NULL,NULL},{NULL,NULL,NULL},{&#34; MNO&#34;&#34; 789&#34;&#34; FGH&#34; }} 为什么价值变为空? 请帮助我尝试几个小时,但可以解决这个错误。

0 个答案:

没有答案