1

simplecursoradapter と組み込みの ListView を使用して、名前、電子メール、写真 (すべて sqlite に保存されている) を示す連絡先のリストを表示したい

このコードを持っています(私はカーソルを使用していないことに注意してください。後でカーソルを提供するためにnullを使用しているためです):

private CursorAdapter contactAdapter;
    @Override
       public void onCreate(Bundle savedInstanceState) 
       {
          super.onCreate(savedInstanceState); 
          contactList = getListView(); 
          contactList.setOnItemClickListener(viewContactListener);      


          String[] from = new String[] { "name","email","image" };
          int[] to = new int[] { R.id.contactTextView,R.id.emailTextView2,R.id.imageView1};//imageView1 is a ImageView
          contactAdapter = new SimpleCursorAdapter(
             MyFirstActivity.this, R.layout.contact_list_item, null, from, to);

          setListAdapter(contactAdapter);



       }

その後:

@Override
   protected void onResume() 
   {
      super.onResume();
      new StartPopulate().execute((Object[]) null);
    } 


private class StartPopulate extends AsyncTask<Object, Object, Cursor> 
   {
      MyDatabaseConnector myDatabaseConnector = 
         new MyDatabaseConnector(myActivity.this);

      // perform the database access
      @Override
      protected Cursor doInBackground(Object... params)
      {
         myDatabaseConnector.open();

         return databaseConnector.getAllContacts(); //it is a cursor where I have the fields which I want to return
      }


      @Override
      protected void onPostExecute(Cursor result)
      {
         contactAdapter.changeCursor(result);
         myDatabaseConnector.close();
      } 
   } 

最初にではなく、changeCursor を使用して onPostExecute 内のカーソルを提供していることに気付いた場合、私の質問は次のとおりです。SimpleCursorAdapter の画像 内部に画像を追加したい (int[] to = new int[] { R.id.contactTextView,R.id.emailTextView2,R.id.imageView1};//imageView1 は ImageView) なので、この名前、メールアドレス、画像を見る方法

また、私のデータベースには次のフィールドがあります。

"CREATE TABLE wholeContacts" +
            "(_id integer primary key autoincrement," +
            "name TEXT, email TEXT, +
            "image BLOB);";

2.-SQLite を使用して画像 (データベース内) を保存することをお勧めします。ありがとう

4

1 に答える 1

0

バイト配列が Cursor.getBlob() から取得される BitmapFactory.decodeByteArray を使用します。

于 2013-10-17T19:48:08.970 に答える