1
Cursor c = managedQuery(People.CONTENT_URI,null,null,null,People.NAME);
String[] cols = new String[]{People.NAME};
int[] views = new int[]{android.R.id.text1};
SimpleCursorAdapter sca = new SimpleCursorAdapter(this,android.R.layout.simple_list_item_1,c,cols,views);
listview.setAdapter(adapter);

このコード スニペットを使用して、 と接続ListViewしていCursorます。

なんて聞きたい

String[] cols = new String[]{People.NAME};
int[] views = new int[]{android.R.id.text1};

正確には??

のコンストラクタに必要な引数について説明してくださいSimpleCursorAdapter

4

2 に答える 2

0

list_item.xmlこのリンクを参照してください

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dp"
    android:textSize="16sp" >
</TextView>

HelloListView.java

public class HelloListView extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

  setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, getNames()));

  ListView lv = getListView();
  lv.setTextFilterEnabled(true);

  lv.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view,
        int position, long id) {
      // When clicked, show a toast with the TextView text
      Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
          Toast.LENGTH_SHORT).show();
    }
  });
}
private ArrayList<String> getNames(){
        ArrayList<String> namesArray = new ArrayList<String>();
        Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
        ContentResolver cr = getContentResolver();
        Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null);
        String[] projection    = new String[] {ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME};
        Cursor names = getContentResolver().query(uri, projection, null, null, null);

        int indexName = names.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);
        names.moveToFirst();
        do {
            namesArray.add(names.getString(indexName));
         } while (names.moveToNext());
       return namesArray;
    }
}
于 2012-05-27T09:59:00.833 に答える
0

これはマップであり、カーソルのどの列を使用してレイアウト内のどのウィジェットを埋めるかをアダプターに伝えます。

指定された順序で使用されます。from 配列にリストされた最初の列 ( cols と呼びました) のデータは、 to 配列にリストされた最初の id (ビューと呼びました) に入ります。

その他のパラメーターは、to 配列で指定したビュー ID を含むレイアウトと、配列で使用されるデータを含むカーソルです。

于 2012-05-27T15:03:13.453 に答える