2012-05-16 3 views
1

Я создал SimpleCursorAdapter. Мне хотелось бы сравнить два ряда. позволяет говорить, что столбцы называются realData pracData. Если я хочу сравнить два столбца, как бы написать инструкцию для этого.простой запрос адаптера курсора

Ниже мой код для моего 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); 

Я хочу сделать что-то подобное, но сравнивать две строки в моей базе данных.

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

ответ

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); 
    } 
} 
+0

может задача, которую я пытаюсь достичь быть сделано с SimpleCursorAdapter или я должен использовать CursorAdapter – al23dev

+0

да, вы можете использовать SimpleCursorAdapter – JustDanyul

+1

Держись, вы обновляете вопрос, теперь вы хотите сравнить две строки? и ранее в вашем вопросе вы говорите, что хотите сравнить два столбца. Что он? (вы, очевидно, можете сделать то и другое, но решения будут разными) – JustDanyul

Смежные вопросы