Java 如何将从数据库表中提取的数据显示到listview中?

Java 如何将从数据库表中提取的数据显示到listview中?,java,android,Java,Android,我在SQLAdapter类中的函数是 public ArrayList<Airline> getairlinedetails(String bookingdate) { Cursor curCalllog =db.rawQuery("SELECT * FROM "+ BOOK + " WHERE " + date + " BETWEEN '" + startdate + "' AND '" + enddate + "'",

我在
SQLAdapter类中的函数是

public ArrayList<Airline> getairlinedetails(String bookingdate) {

    Cursor curCalllog =db.rawQuery("SELECT * FROM "+ BOOK + 
            " WHERE " + date + 
            " BETWEEN '" + startdate + "' AND '" + enddate + "'", null);

    if (curCalllog != null) {
        if (curCalllog.moveToFirst()) {
            do {
                a=new Airline();
                //a.setBookingdate(curCalllog.getString(1));
                a.setPickupadd(curCalllog.getString(2));
                a.setCity(curCalllog.getString(3));
                a.setTrip(curCalllog.getString(4));
                a.setFdate(curCalllog.getString(5));
                a.setFtime(curCalllog.getString(6));
                a.setCdate(curCalllog.getString(7));
                a.setPtime(curCalllog.getString(8));
                a.setSeats(curCalllog.getInt(9));
                a.setAmount(curCalllog.getInt(10));



                update.add(a);
            } while (curCalllog.moveToNext());
        }
    }

    return update;
}
public ArrayList getairlinedetails(字符串bookingdate){
Cursor curCalllog=db.rawQuery(“从”+BOOK+SELECT*FROM”
“其中”+日期+
“介于“+startdate+”和“+enddate+””之间,null);
if(curCalllog!=null){
if(curCalllog.moveToFirst()){
做{
a=新航空公司();
//a、 setBookingdate(curCalllog.getString(1));
a、 setPickupadd(curCalllog.getString(2));
a、 setCity(curCalllog.getString(3));
a、 setTrip(curCalllog.getString(4));
a、 setFdate(curCalllog.getString(5));
a、 setFtime(curCalllog.getString(6));
a、 setCdate(curCalllog.getString(7));
a、 setPtime(curCalllog.getString(8));
a、 设置测试(curCalllog.getInt(9));
a、 setAmount(curCalllog.getInt(10));
增补(a);
}while(curCalllog.moveToNext());
}
}
返回更新;
}
我正在两个日期之间提取数据,并且
我想将获取的数据显示到listview中,请帮助我如何操作,我是android开发中的新手。

我假设您是从数据库中获取数据,然后通过完整的ArrayList和Airline对象获取数据


现在要在ListView中显示来自
ArrayList

的数据,可以使用SimpleCorsOrAdapter在ListView中显示数据库内容。创建SimpleCursorAdapter的实例并将游标对象传递给它。此链接

如果希望自定义Listview,可以通过使用自定义适配器类扩展它来自定义SimpleCursorAdapter

我想将提取的数据显示到listview中,请帮助我怎么做 它是android开发中的新手

最简单的方法是将
ArrayAdapter
与内置的
ListView的
行布局一起使用

ListView list = (ListView) findViewById(R.id.yourList);
ArrayList<Airline> data = db.getairlinedetails("someString");
ArrayAdapter<Airline> adapter = new ArrayAdapter<Airline>(this, 
                                    android.R.layout.simple_list_item_1, data);

list.setAdapter(adapter);
注: 这是一个简单的方法。但如果您想对ListView获得更多控制并创建自定义列表,我建议您创建自己的ListAdapter子类,例如BaseAdapter,并定义自己的适配器。很抱歉,我不会为您编写实现,因为它需要更多的代码,但您可以在这里找到很好的示例:


您可以遵循以下示例:

DataManipular.java-helper类

 //to retrieve data in a list
  public List<String[]> selectAll()
{

    List<String[]> list = new ArrayList<String[]>();
    Cursor cursor = db.query(TABLE_NAME, new String[] { "id","name","number","skypeId","address" },
            null, null, null, null, "name asc"); 

    int x=0;
    if (cursor.moveToFirst()) {
        do {
            String[] b1=new String[]{cursor.getString(0),cursor.getString(1),cursor.getString(2),cursor.getString(3),cursor.getString(4)};

            list.add(b1);

            x=x+1;
        } while (cursor.moveToNext());
    }
    if (cursor != null && !cursor.isClosed()) {
        cursor.close();
    } 
    cursor.close();

    return list;
}
//检索列表中的数据
公共列表selectAll()
{
列表=新的ArrayList();
Cursor Cursor=db.query(表名称,新字符串[]{“id”,“NAME”,“number”,“skypeId”,“address”},
空,空,空,空,“名称asc”);
int x=0;
if(cursor.moveToFirst()){
做{
String[]b1=新字符串[]{cursor.getString(0),cursor.getString(1),cursor.getString(2),cursor.getString(3),cursor.getString(4)};
列表。添加(b1);
x=x+1;
}while(cursor.moveToNext());
}
if(cursor!=null&!cursor.isClosed()){
cursor.close();
} 
cursor.close();
退货清单;
}
CheckData.java //在列表视图中显示数据的步骤

      public class CheckData extends ListActivity  {     
TextView selection;
public int idToModify; 
DataManipulator dm;

List<String[]> list = new ArrayList<String[]>();
List<String[]> names2 =null ;
String[] stg1;
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.check);
      dm = new DataManipulator(this);
      names2 = dm.selectAll();

    stg1=new String[names2.size()]; 

    int x=0;
    String stg;

    for (String[] name : names2) {
        stg = name[1]+" - "+name[2]+ " - "+name[3]+" - "+name[4];

        stg1[x]=stg;
        x++;
    }


    ArrayAdapter<String> adapter = new ArrayAdapter<String>(   
            this,android.R.layout.simple_list_item_1,   
            stg1);
    this.setListAdapter(adapter);
    selection=(TextView)findViewById(R.id.selection);

}      

public void onListItemClick(ListView parent, View v, int position, long id) {
    selection.setText(stg1[position]);
}


}
公共类CheckData扩展ListActivity{
文本视图选择;
公共信息管理;
数据挖掘;
列表=新的ArrayList();
列表名称2=空;
字符串[]stg1;
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.check);
dm=新的数据操纵器(此);
names2=dm.selectAll();
stg1=新字符串[names2.size()];
int x=0;
字符串stg;
对于(字符串[]名称:名称2){
stg=名称[1]+“-”+名称[2]+“-”+名称[3]+“-”+名称[4];
stg1[x]=stg;
x++;
}
ArrayAdapter=新的ArrayAdapter(
这个,android.R.layout.simple\u list\u item\u 1,
stg1);
这个.setListAdapter(适配器);
selection=(TextView)findViewById(R.id.selection);
}      
public void onListItemClick(ListView父视图、视图v、整数位置、长id){
selection.setText(stg1[位置]);
}
}

按照此完成完整教程

您可以将ArrayList传递到ListView的适配器类中,并在适配器类的getView方法中访问ArrayList中的数据。请在此处发布一些代码以供参考。是否有教程可以帮助我,因为我在Android@sonam好的。但由于您是android程序员新手,我建议您学习和探索我博客上给出的类别。@sonam什么问题?实际上,我在TexView中成功地显示了记录……但只显示了一条记录……我想在listview中显示更多包含四个字段的记录……。我仍在使用自定义listview它该死的混乱:(:(无论如何,我真的很感谢你的邀请help@sonam所以在我的回答中,你们有清晰的教程链接,所有的东西都在哪里解释。你们有什么问题?什么让你们困惑?告诉我。
      public class CheckData extends ListActivity  {     
TextView selection;
public int idToModify; 
DataManipulator dm;

List<String[]> list = new ArrayList<String[]>();
List<String[]> names2 =null ;
String[] stg1;
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.check);
      dm = new DataManipulator(this);
      names2 = dm.selectAll();

    stg1=new String[names2.size()]; 

    int x=0;
    String stg;

    for (String[] name : names2) {
        stg = name[1]+" - "+name[2]+ " - "+name[3]+" - "+name[4];

        stg1[x]=stg;
        x++;
    }


    ArrayAdapter<String> adapter = new ArrayAdapter<String>(   
            this,android.R.layout.simple_list_item_1,   
            stg1);
    this.setListAdapter(adapter);
    selection=(TextView)findViewById(R.id.selection);

}      

public void onListItemClick(ListView parent, View v, int position, long id) {
    selection.setText(stg1[position]);
}


}