2015-06-04 76 views
0

我正在返回一個數組String []數據,但它返回NULL。 我試圖存儲在數據[]但不工作的陣列, 現在我已經在字符串(姓名,電話,溫度,密碼),但不能返回值..從嵌套循環返回時返回null

public String[] searchUserData(String email) { 

String[] data= null; 
String temp,name,phone,password; 

    if (cr.moveToFirst()) { 

     do { 
      temp = cr.getString(2); 

      if (temp.equals(email)) { 

       //data[0]= cr.getString(1); 
       //data[1]= cr.getString(2); 
       //data[2]= cr.getString31); 
       //data[3]= cr.getString41); 

       name = cr.getString(1); 
       phone = cr.getString(3); 
       password = cr.getString(4); 

       Log.i("Values", name+" "+phone+" "+email+" "+password); 


      } 
     } while (cr.moveToNext()); 
     cr.close(); 
    } 
    db.close(); 

    return data; 

} 
+2

那麼,如果'data = null',並且如果'data'永遠不會實例化......'return data'明顯返回'null' – NiziL

回答

2

String[] data = new String[4];將開始你。

這給你data數組中的4個元素,它們最初設置爲null

這些可以使用data[0]通過到data[3]來訪問:在Java數組索引是0爲基礎的。

+0

感謝它現在的工作......我缺少String [ ] data = new String [4]; – Ravish

0

您尚未創建的字符串數組對象

public String[] searchUserData(String email) { 

String[] data= new String[4]; 
String temp,name,phone,password; 

    if (cr.moveToFirst()) { 

     do { 
      temp = cr.getString(2); 

      if (temp.equals(email)) { 

       data[0]= cr.getString(1); 
       data[1]= cr.getString(2); 
       data[2]= cr.getString31); 
       data[3]= cr.getString41); 

       name = cr.getString(1); 
       phone = cr.getString(3); 
       password = cr.getString(4); 

       Log.i("Values", name+" "+phone+" "+email+" "+password); 


      } 
     } while (cr.moveToNext()); 
     cr.close(); 
    } 
    db.close(); 

    return data; 

} 
+0

現在感謝它的工作 – Ravish

0

你有一些其他問題:

  1. 的CR和db沒有申報。我們假定這些實例變量已經在代碼的其他地方適當地設置了。
  2. 您一次又一次地設置相同的數據數組,直到cr.moveToNext()返回false。也許你的意思是當temp設置數據數組時設置跳出循環匹配電子郵件?