スクリーンショットのようにアクティビティを表示したいgridView
。アイテムをクリックするとアクティビティが開き、クリックして戻るとgridView
再び表示されます。ボタンをクリックnewItem
すると、新しいアクティビティが作成され、上に表示されgridView
ます。
それは可能ですか、それとも他のものを使用する必要がありますgridView
か?
スクリーンショットのようにアクティビティを表示したいgridView
。アイテムをクリックするとアクティビティが開き、クリックして戻るとgridView
再び表示されます。ボタンをクリックnewItem
すると、新しいアクティビティが作成され、上に表示されgridView
ます。
それは可能ですか、それとも他のものを使用する必要がありますgridView
か?
もちろんできますし、それも非常に簡単です。
1 - たとえば、「GridHome.java」という名前のアクティビティを作成します。このアクティビティのレイアウトを GridView のみにします。2 - 他のアクティビティから事前に読み込まれた画像でグリッドビューを埋めます。たとえば、他のアクティビティのスクリーンショットを取得して PNG として保存し、ドローアブルとしてアプリケーションに追加し、最後にカスタマー アダプターを介してグリッドビューに追加するとします。3 - OnItemClickListener を gridview に設定して、ユーザーがいずれかをクリックしたときに、開きたいアクティビティに対して新しいインテントを開始できるようにします。この場合、次のようなメソッドをカスタム グリッド アダプターに追加できます。
public String getItemActivityName(int pos) {
return activityNames.get(pos);
}
ここで、「activityNames」は、グリッド ビューにあるアクティビティに対応する文字列の配列です。
そして、「GridHome.java」から GridView に対して次のようにします。
mGridView = (GridView) view.findViewById(R.id.home_grid);
mGridView.setAdapter(mAdapter);
mGridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
String activityName = mAdapter.getActivityName(position);
if (activityName.equals(ACTIVITY_ONE) {
Intent intent = new Intent(getActivity(), ActivityOne.class);
startActivity(intent);
}
}
});
ACTIVITY_ONE は、アクティビティの名前を表す定数です。
private static final String ACTIVITY_ONE = "Contacts";
private static final String ACTIVITY_TWO = "Groups";
などなど。