![](/img/trans.png)
[英]How to display fetched json data into listView using ArrayAdapter
[英]How to display data fetched from the database table into listview?
我在SQLAdapter class
中的功能是
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;
}
M在两个日期之间获取数据,并且我想将获取的数据显示到listview中,请帮助我该怎么做。
您可以使用SimpleCursorAdapter在Listview中显示Databse内容。 创建SimpleCursorAdapter的实例,然后将Cursor对象传递给它。 引用此链接
如果要定制列表视图,则可以通过使用自定义适配器类扩展它来定制SimpleCursorAdapter。
我假设您是从数据库中获取数据,并通过带有Airline对象的完整ArrayList获得数据。
现在要在ArrayList<Airline>
ListView中显示数据,您必须通过扩展BaseAdapter
或ArrayAdapter
来定义Custom适配器类 。
在这里,您可以: 如何为ListView定义自定义适配器?
我想将获取的数据显示到列表视图中,请帮我该怎么做
最简单的方法是将ArrayAdapter
与内置的ListView's
行布局一起使用。
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);
但是由于此,您还需要在Airline类中重写toString()
方法。
原因是您的ArrayAdapter
会将每个子级(航空公司提供的列表)转换为String,如果不覆盖toString(),则将获得对象的默认字符串表示形式,但您可能需要显示航空公司的实例名称,以便您的方法可以看起来像
@Override
public String toString() {
return this.name;
}
这是简单的方法。 但是,如果您想获得对ListView的更多控制并创建自定义列表,我建议您创建自己的ListAdapter子类,例如BaseAdapter并定义自己的Adapter。 抱歉,我不会为您编写实现,因为它需要更多代码,但您可以在此处找到不错的示例:
您可以按照以下示例操作:
DataManipulator.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;
}
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]);
}
}
请点击此链接以获取完整的教程
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.