1

SimpleCursorAdapter を作成しました。2 つの行を比較する方法が欲しいです。列が realData pracData と呼ばれているとしましょう。2 つの列を比較したい場合、これを達成するためのステートメントをどのように記述しますか。

以下は私のSimpleCursorAdapterのコードです

  db = new DBAdapter(this);
    db.open();

 //   db.insertContact("how do you print hello world", "print 'hello world';", "print hello", "hello", 1);

  //  db.insertContact("what is x=2 and y=5", "5", "7", "2", 2);
    db.close();

    /*
     *  Open the same SQLite database
     *  and read all it's content.
     */
    db = new DBAdapter(this);
     db.open();

    Cursor cursor = db.getAllContacts();
    startManagingCursor(cursor);

    String[] from = new String[]{DBAdapter.question, DBAdapter.possibleAnsOne};

    int[] to = new int[]{R.id.label, R.id.TextView01};

    SimpleCursorAdapter cursorAdapter =
        new SimpleCursorAdapter(this, R.layout.row, cursor, from, to);

    listContent.setAdapter(cursorAdapter);

    db.close();

これは ArrayAdapter からのものです

if (s.startsWith("how do you print hello world") || s.startsWith("iPhone")
                || s.startsWith("Solaris")) {
            imageView.setImageResource(R.drawable.plus);

同様のことをしたいのですが、データベース内の 2 つの行を比較します。

public class MyAdapter extends SimpleCursorAdapter  {
private Context context;
private int layout;
    public MyAdapter(Context context, int layout, Cursor c, String[] from,
            int[] to) {
        super(context, layout, c, from, to);
        this.context = context;
        this.layout = layout;
        // TODO Auto-generated constructor stub
    }

    @Override
    public void bindView(View v, Context context, Cursor c) {
          // do your magic inhere :) the cursor will be at the correct row position
        System.out.println("please select a cursor");
        // int nameCol = c.getColumnIndex(People.NAME);
       //  ListView listContent = (ListView)findViewById(R.id.contentlist);
       //     ImageView imageView = (ImageView)findViewById(R.id.ImageView01);
         int nameCol = c.getColumnIndex(DBAdapter.question);
         System.out.println("What is the column index" +nameCol);
    }
}
4

1 に答える 1

1

SimpleCursorAdapterを拡張し、bindViewをオーバーライドすると機能するはずです。私は通常CursorAdapterを拡張しますが、何かを試してみてください

public class MyAdapter extends SimpleCursorAdapter {

    @Override
    public void bindView(View view, Context context, Cursor cursor) {
          TextView label = view.findViewById(R.id.yourid);
          // and then do something with cursor.getString(columnindex);
    }
}
于 2012-05-16T16:04:35.633 に答える