0

コンテンツプロバイダー「content:// contacts/people」のすべての列を表示するアプリケーションを作成しました。フィールドの1つはtimes_contactedでした。そこで、表示名とtimes_contactedを表示するアプリケーションを作成しました。ContactContractについて知っています。しかし、休閑コードがアカウントの詳細を表示していない理由を知りたいです。アプリケーションはJellyBeanエミュレーターで正常に動作しますが、Ice Cream Sandwichで実行されている私の電話では、アプリケーションは空白のアクティビティを表示しますが、エミュレーターでは連絡先リストを表示します。もう1つ知りたいのは、CursorLoaderを使用しているときに、カーソル参照を取得できなかったため、クエリ結果を反復処理する方法です。ContentResolverを個別に使用することになっていますか?これが私のアプリのコードです。READ_CONTACT権限を含めました。

package legacy_systems.contactsdisplay;

import android.net.Uri;
import android.os.Bundle;
import android.app.ListActivity;
import android.app.LoaderManager.LoaderCallbacks;
import android.content.CursorLoader;
import android.content.Loader;
import android.view.Menu;
import android.widget.SimpleCursorAdapter;
import android.widget.Toast;
import android.database.Cursor;
public class MainActivity extends ListActivity implements LoaderCallbacks<Cursor>{
    SimpleCursorAdapter madapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        madapter = new SimpleCursorAdapter(this, 
                                           android.R.layout.simple_list_item_2,
                                           null,
                                           new String[]{"display_name","times_contacted" },
                                           new int[]{android.R.id.text1, android.R.id.text2},0);
        setListAdapter(madapter);

        getLoaderManager().initLoader(0, null, this);
        Toast.makeText(this, "Done", Toast.LENGTH_LONG).show();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
    public Loader<Cursor> onCreateLoader(int id, Bundle args) {
        Uri baseUri = Uri.parse("content://contacts/people");
        return new CursorLoader(this, baseUri,null,null,null,null);
        // TODO Auto-generated method stub      
    }
    @Override
    public void onLoadFinished(Loader<Cursor> arg0, Cursor arg1) {
        // TODO Auto-generated method stub
        madapter.swapCursor(arg1);
    }



    @Override
    public void onLoaderReset(Loader<Cursor> arg0) {
        // TODO Auto-generated method stub
        madapter.swapCursor(null);
    }

}
4

1 に答える 1

0

連絡先コンテンツプロバイダーにクエリを実行して取得したカーソルを繰り返し処理すると、カーソルが空であることがわかりました。行はありませんでした。したがって、表示される可能性はありません。

于 2013-02-21T06:09:39.910 に答える