2016-02-27 36 views
-2

检索数据,我正在尝试从sqlite的数据,但我不知道什么是错我的代码从SQLite的

public class MainPage extends AppCompatActivity { 
    private RequestQueue requestQueue; 
    private String user,position; 
    private DatabaseHelper helper; 
    private List<User> user_position; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     helper=new DatabaseHelper(this); 
     if (helper.getUserlogin()==0) { 
      finish(); 
     startActivity(new Intent(getApplicationContext(), LoginActivity.class)); 
     }else { 
      setContentView(R.layout.activity_main_page); 

     user_position= helper.getUserPosition(); 
     user = String.valueOf(user_position.get(0).getUserName()); 
     position=String.valueOf(user_position.get(1).getUserPosition()); 
     TextView textView = (TextView) findViewById(R.id.user); 
     textView.setText(user+"("+position+")"); 
    } 
} 

,这是数据库的读写方法

public List<User> getUserPosition() { 

     List<User> oList = new ArrayList<User>(); 

     SQLiteDatabase db = getReadableDatabase(); 

     Cursor cursor = db.query(ORDER_TABLE, null, null, null, null, null, 
       null); 


      User user = new User(); 
      user.setUserName(cursor.getString(cursor 
        .getColumnIndex(ROW_USER))); 
      user.setUserPosition(cursor.getString(cursor 
        .getColumnIndex(ROW_POSITION))); 

      oList.add(user); 

     if (cursor != null) 
      cursor.close(); 

     if (db != null) 
      db.close(); 

     return oList; 

    } 
+1

什么是不工作的清单?什么是预期的结果和你得到什么? – Rohit5k2

+0

你在哪里初始化'helper'? – Rohit5k2

+0

是的我会编辑的问题更清楚@ Rohit5k2 –

回答

0

你是不循环游标,所以返回的数组中没有结果(游标在第一个结果之前开始,并且您还没有使用moveToFirst())。

更换

User user = new User(); 
user.setUserName(cursor.getString(cursor 
       .getColumnIndex(ROW_USER))); 
user.setUserPosition(cursor.getString(cursor 
       .getColumnIndex(ROW_POSITION))); 
oList.add(user); 

while (cursor.moveToNext()) { 
    User user = new User(); 
    user.setUserName(cursor.getString(cursor 
       .getColumnIndex(ROW_USER))); 
    user.setUserPosition(cursor.getString(cursor 
       .getColumnIndex(ROW_POSITION))); 
    oList.add(user); 
} 

更新:您正在返回从DB

user_position = helper.getUserPosition(); 
if(user_position.size() > 0){ 
    User user = user_position.get(0); 
    user = String.valueOf(user.getUserName()); 
    position=String.valueOf(user.getUserPosition()); 
    TextView textView = (TextView) findViewById(R.id.user); 
    textView.setText(user+"("+position+")"); 
} 
else 
    Log.e("No user", "NO user found"); 
+0

谢谢先生,但不工作也 –

+0

是它显示此错误: 引起:java.lang.NullPointerException at com.amaiub.hussain.smartmenu.MainPage.onCreate(MainPage.java:91) –

+0

这意味着在这个问题行: user_position = helper.getUserPosition(); user = String.valueOf(user_position.get(0).getUserName()); position = String.valueOf(user_position.get(1).getUserPosition()); –