何か基本的なことが欠けているように感じます。実際、この質問をするのはちょっと恥ずかしいです。しかし、それは新しいプラットフォームを学び始めるときに起こることです...
CursorAdapter を介して入力される ListViewActivity があります。リスト アイテムがクリックされると、そのアイテムの詳細を表示する新しいアクティビティを開始します。私がやりたいことは、フリンジ/スワイプを有効にして、詳細アクティビティからアイテムを反復処理することです。List 内のアイテム数にハードコードされた制限がなく、無駄に思えるだけなので、ViewFlipper を完全に設定したくありません。フリング ジェスチャ/トラックボールの動きを傍受し、次/前のアイテムの詳細で詳細アクティビティをリセットする方法はありますか?
私の ListViewActivity は、適切なインテントで startActivity を呼び出す OnListItemClick を使用して、(managedQuery を介して) Cursor と関連する CursorAdapter を設定するだけです。
public final class ModelList extends ListActivity {
private Cursor m_models = null;
private ModelAdapter m_adapter;
@Override
public void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(m_models == null) {
m_models = managedQuery(Model.CONTENT_URI, Model.PROJECTION, null, null, Model.DEFAULT_SORT_ORDER);
}
m_adapter = new ModelAdapter(this, R.layout.modelitem, m_models);
setContentView(R.layout.forcelist);
setTitle(R.string.activity_list);
setListAdapter(m_adapter);
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
Log.d(getPackageName(), "Clicked item id:" + id);
if(id < 0) {
startActivity(new Intent(Intent.ACTION_EDIT, Model.CONTENT_URI));
} else {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(Model.CONTENT_URI + "/" + id)));
}
}
}
私の詳細なアクティビティはかなり単純に思えます。これは、インテントの Uri に基づいて項目の詳細を表示するために設定された多数のビューを持つ単純な RelativeLayout です。
public class ModelDetail extends Activity {
private Uri mUri;
private FactionHelper factionHelper;
private static String mCostFormat;
private static String mDescriptionFormat;
private ModelAdapter.MarAdapter marAdapter;
@Override
public void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.modeldetail);
setTitle(R.string.activity_detail);
mCostFormat = getBaseContext().getResources().getString(R.string.modelCostFormat);
mDescriptionFormat = getBaseContext().getResources().getString(R.string.modelDescriptionFormat);
mUri = getIntent().getData();
factionHelper = new FactionHelper(getBaseContext());
populateData();
}
protected void populateData() {
TextView name = (TextView) findViewById(R.id.modelName);
TextView description = (TextView) findViewById(R.id.modelDescription);
// ... More finding Views and populating data ...
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
populateData();
}
}