安卓应用程序 : how to display resultset in Listview?

标签 android mysql jdbc resultset

我是新来的...... 我有一个到 MySQL 数据库的连接并使用 jdbc 连接器。 运行查询并显示到 TextView 没有问题, 但如何在 ListView 中显示所有获取的记录。 我浏览了这里和那里的教程,但它们描述了如何使用光标来执行此操作,但我有结果集作为我的查询结果。 请帮忙,谢谢

最佳答案

运行查询后,您将获得结果集,如下例所示:

sqlConnection myConn = new sqlConnection();
Statement stmt = myConn.getConnection().createStatement();
ResultSet resSet = stmt.executeQuery(myQuery);

您现在可以花点时间逐步读取数据并填充您的 LinkedList:

List<Example> mExampleList = new LinkedList<Example>();

while (resSet.next()) {
    Example mExample = new Example ();      
    mExample.ID = resSet.getInt("ExampleID");
    mExample.name = resSet.getString("ExampleName");
    [..]
    mExampleList.add(mExample);
}

注意:记得关闭连接!

列表“mExa​​mpleList”现在可以成为适配器的内容:

CustomAdapterOptimized mAdapter = new CustomAdapterOptimized(mContext, R.layout.example_item, mExampleList);
mListView.setAdapter(mAdapter);

就是这样。

<小时/>

在这个例子中,我假设你有一个名为Example的类,代表单个项目;一个名为ExampleList的列表,包含要显示的项目;上下文“mContext”;布局“example_item”表示列表中单个项目的 View 。

我正在使用像这样的 CustomAdapterOptimized:

private class CustomAdapterOptimized extends ArrayAdapter<Example> {

public CustomAdapterOptimized(Context context, int textViewResourceId, List<Example> objects) {
    super(context, textViewResourceId, objects);
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    return getViewOptimize(position, convertView, parent);
}

public View getViewOptimize(int position, View convertView, ViewGroup parent) {
    ViewHolder viewHolder = null;
    if (convertView == null) {
        LayoutInflater inflater = (LayoutInflater)
            getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    convertView = inflater.inflate(R.layout.example_item, null);
    viewHolder = new ViewHolder();
    viewHolder.exampleID= (TextView) convertView.findViewById(R.id.exampleID);
    viewHolder.exampleName= (TextView) convertView.findViewById(R.id.exampleName);
    convertView.setTag(viewHolder);
    } else {
        viewHolder = (ViewHolder) convertView.getTag();
    }
        Example example = (Example)getItem(position);
        viewHolder.exampleID.setText(example.ID);
        viewHolder.exampleName.setText(example.name);
        return convertView;
}

private class ViewHolder {
    public TextView exampleID;
    public TextView exampleName;
}
}

关于安卓应用程序 : how to display resultset in Listview?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17617352/

相关文章:

postgresql - Liquibase 无法使用 @ 和 ! 对用户进行身份验证在密码中

java - 如何在 jdbc 的语句中使用 DECLARE 子句?

android - ACTION_BATTERY_LOW 未从 list 中解雇?

安卓 : Network operations in Appwidget

android - 在 Android Studio 中的远程服务器上构建本地 gradle 应用程序

php - 在数据源中找不到模型表

php - 通过sqlmap验证sql注入(inject)

android - Kivy SQLalchemy 和 Android,没有名为 MySQLdb 的模块

java - 使用 Apache Tomcat 连接到 JSP webapp 中的数据库

java - Android - Java XML - 带按钮的断线