0

私の機能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 2 つの日付の間でデータを取得しています。取得したデータをリストビューに表示するには、その方法を教えてください。Android 開発は初めてです。

4

4 に答える 4

1

リストビューでデータベースの内容を表示するには、SimpleCursorAdapter を使用できます。SimpleCursorAdapter のインスタンスを作成し、それに Cursor オブジェクトを渡します。このリンクを参照してください

カスタマイズされたリストビューが必要な場合は、カスタム アダプター クラスでこれを拡張することにより、SimpleCursorAdapter をカスタマイズできます。

于 2013-04-01T13:34:40.997 に答える
0

取得したデータをリストビューに表示したい方法を教えてください私はアンドロイド開発の初心者です

最も簡単な方法は、組み込みの行レイアウトで使用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);

toString()ただし、このため、Airline クラスのメソッドもオーバーライドする必要があります。

理由は、ArrayAdapter各子 (提供された航空会社のリスト) を文字列に変換し、toString() をオーバーライドしない場合は、オブジェクトのデフォルトの文字列表現を取得しますが、メソッドが見えるように航空会社のインスタンス名を表示する必要があるためです。お気に入り

@Override
public String toString() {
   return this.name;
}

ノート:

これは簡単な方法です。ただし、ListView をより詳細に制御してカスタム リストを作成する場合は、BaseAdapter などの ListAdapter の独自のサブクラスを作成し、独自のアダプタを定義することをお勧めします。申し訳ありませんが、より多くのコードが必要になるため、実装については書きませんが、ここで見つけることができる素晴らしい例を示します。

于 2013-04-01T13:36:12.013 に答える
0

この例に従うことができます:

DataManipulator.java -ヘルパー クラス

 //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]);
}


}

完全なチュートリアルについては、このリンクに従ってください

于 2013-04-01T13:37:31.117 に答える
0

データベースからデータを取得していると仮定し、Airline オブジェクトを含む完全な ArrayList を使用します。

から ListView にデータを表示するには、またはを拡張してカスタム アダプタ クラスArrayList<Airline>を定義する必要があります。BaseAdapterArrayAdapter

ここに行きます:ListViewのカスタムアダプターを定義する方法は?

于 2013-04-01T13:34:21.510 に答える