【发布时间】:2019-10-28 22:04:55
【问题描述】:
编辑和删除列表视图中的项目,但问题是当我想查看我的列表时应用程序崩溃
我已经看到问题出在第 34 行,因为“user”的值为 null
public class PageUser extends AppCompatActivity {
ArrayList<User> userList;
ListView listView;
User user;
DatabaseHelper mDatabaseHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.page_user);
mDatabaseHelper = new DatabaseHelper(this);
userList = new ArrayList<>();
Cursor data = mDatabaseHelper.getListContents();
int numRows = data.getCount();
if (numRows == 0) {
Toast.makeText(PageUser.this, "Aucun utilisateur enregistré !", Toast.LENGTH_LONG).show();
} else {
int i = 0;
while (data.moveToNext()) {
user = new User( data.getString(1), data.getString(2), data.getString(3)); //The problem is here
userList.add(i, user);
System.out.println(data.getString(1) + " " + data.getString(2) + " " + data.getString(3));
i++;
}
UserAdaptater adapter = new UserAdaptater(this, R.layout.user_cell, userList);
listView = (ListView) findViewById(R.id.maListe);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
String recupID = userList.get(i).getID();
String recupNom = userList.get(i).getNom();
String recupPrenom = userList.get(i).getPrenom();
Intent intent = new Intent(PageUser.this, EditUser.class);
intent.putExtra("ID",recupID);
intent.putExtra("name",recupNom);
intent.putExtra("fname",recupPrenom);
startActivity(intent);
}
});
}
}
public void page_ajouter(View view){
startActivity(new Intent(this, AddUser.class));
}
}
这是用户类
包 com.example.changepage;
public class User {
private String ID;
private String nom;
private String prenom;
public User(String id, String nom, String prenom) {
this.ID = id;
this.nom = nom;
this.prenom = prenom;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public String getPrenom() {
return prenom;
}
public void setPrenom(String prenom) {
this.prenom = prenom;
}
}
还有我的 getListContents 函数
public Cursor getListContents() {
SQLiteDatabase db = this.getWritableDatabase();
Cursor data = db.rawQuery("SELECT * FROM " + TABLE_NAME, null);
return data;
}
我想解决这个问题以查看列表
【问题讨论】:
-
这可能是很多事情。请添加调试。 getListContents() 函数返回什么,User 类是什么样子的?
-
好的,所以 getListContents() 函数返回数据,我添加了调试。谢谢您的回复
标签: java android mysql xml sqlite