我正在努力处理 UI 元素。 我正在使用 Android 和 SQL Server 存储过程。 我正在寻找一种将单个结果集添加到 ListView 的方法。
我的大部分研究似乎都发现,当结果集已经包含多于一行时,我的每次/每个事件触发器只会返回一行
onClick
将触发一个 select 语句,该语句将返回一行结果。
每次点击都会发生这种情况,并且列表应该在每次点击时增长(添加新项目),但对我来说,列表中的项目会替换点击时的第一个项目。
Connection con = connectionClass.CONN();
connect = con;
lstBales= (ListView) findViewById(R.id.lstBales);
PreparedStatement statement = connect.prepareStatement("EXEC SelectbyId '" + ItemID.toString() + "'");
final ArrayList list = new ArrayList();
rs = statement.executeQuery();
while (rs.next()) {
list.add(rs.getString("col1")+","+ rs.getString("col2")+","+ rs.getString("col3")+","+ rs.getString("col4"));
}
ArrayAdapter adapter = new ArrayAdapter(ReadActivityTwo.this,
android.R.layout.simple_list_item_1, list);
lstBales.setAdapter(adapter);
最佳答案
您应该使用Cursor
从表中获取行。
public ArrayList<HomeClass> getdata() {
Cursor cursor = null;
cursor = DBConstant.sqliteDatabase.query(your query);
if (cursor != null && cursor.getCount() > 0) {
if (cursor.moveToFirst()) {
do {
list = new ArrayList<>();
String postid = cursor.getString(cursor.getColumnIndex(DBConstant.TBL_MULTIPLE_IMAGE.POST_ID));
String multipleImagepath = cursor.getString(cursor.getColumnIndex(DBConstant.TBL_MULTIPLE_IMAGE.SET_MULTI_IMAGE));
// here your modal class which stores one row data .
homeclass = new HomeClass();
homeclass.setPost_id(postid);
homeclass.setmultipleImagepath (multipleImagepath );
} while (cursor.moveToNext());
list.add(homeclass);
}
}
if (cursor != null && !cursor.isClosed()) {
cursor.close();
}
return list;
}
使用上面Adapter
设置的方法。调用此方法后添加代码
final ArrayList<HomeClass> list = new ArrayList();
list=getdata();
ArrayAdapter adapter = new ArrayAdapter(ReadActivityTwo.this,
android.R.layout.simple_list_item_1, list);
lstBales.setAdapter(adapter);
关于java - 将单独的结果集添加到 ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47526315/