Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android应用程序:如何在Listview中显示结果集?_Android_Mysql_Jdbc_Resultset - Fatal编程技术网

Android应用程序:如何在Listview中显示结果集?

Android应用程序:如何在Listview中显示结果集?,android,mysql,jdbc,resultset,Android,Mysql,Jdbc,Resultset,我是新来的。。。。 我使用jdbc连接器连接到MySQL数据库。 运行查询并显示到textview没有问题, 但是如何在ListView中显示所有获取的记录呢。 我浏览了这里和那里的教程,但它们描述了如何使用游标,但我有一个查询结果集。 请提供帮助并感谢您一旦您运行了查询,您的结果集如下所示: sqlConnection myConn = new sqlConnection(); Statement stmt = myConn.getConnection().createStatement();

我是新来的。。。。 我使用jdbc连接器连接到MySQL数据库。 运行查询并显示到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);
}
就这样


在本例中,我假设您有一个名为example的类来表示单个项;名为ExampleList的列表,其中包含要显示的项目;上下文“mContext”;一个布局“example_item”,表示列表中单个项目的视图

我使用的是这样优化的CustomAdapter:

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;
}
}
私有类CustomAdapter优化扩展ArrayAdapter{
公共CustomAdapter已优化(上下文上下文、int textViewResourceId、列表对象){
超级(上下文、textViewResourceId、对象);
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
返回getViewOptimize(位置、转换视图、父级);
}
公共视图getViewOptimize(int位置、视图转换视图、视图组父视图){
ViewHolder ViewHolder=null;
if(convertView==null){
LayoutInflater充气机=(LayoutInflater)
getContext().getSystemService(Context.LAYOUT\u充气机\u服务);
convertView=充气机。充气(R.layout.example_item,null);
viewHolder=新的viewHolder();
viewHolder.exampleID=(TextView)convertView.findViewById(R.id.exampleID);
viewHolder.exampleName=(TextView)convertView.findViewById(R.id.exampleName);
convertView.setTag(viewHolder);
}否则{
viewHolder=(viewHolder)convertView.getTag();
}
示例=(示例)getItem(位置);
viewHolder.exampleID.setText(example.ID);
viewHolder.exampleName.setText(example.name);
返回视图;
}
私有类视窗持有者{
公共文本视图示例ID;
公共文本视图示例名;
}
}

Hi Andreaoid。非常感谢您的回复。正如我提到的,我对这件事太陌生了。你介意我问几个问题吗:尽管我有一个可视化的listview组件,但我是否必须创建一个新的类示例?对不起,如果我问了一些愚蠢的问题。请你把考试的课程代码发出来好吗。Tahnksheclass示例只是展示其工作原理的一种方式。它表示列表中的单个项:public类示例{public String ID;public String name;}谢谢。我曾尝试采用您的解决方案,但在这一行中出现错误示例示例=(示例)getItem(位置);什么是getItem(position)以及它应该声明在哪里?错误是:无法从实体转换为ProductItem ProductItem是表示单个项的my类,并且具有:公共类ProductItem{public String art_code;public String art_desc;}用示例替换实体,代码中存在键入错误。你最初的问题是关于从resultSet中获取数据,我想这个问题已经得到了回答。。。你现在可以开始了。
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;
}
}