DialogでのGalleryの使い方
4629 ワード
Dialogには2つの方法があります.
一:ActivityでonCreateDialog(int id)を書き換える方法でDialogのオブジェクトを作成して返し、ActivityのshowDialog(int id)とDismissDialog(int id)を呼び出してDialogダイアログボックスを表示および非表示にする
上記の方法で作成する場合、Buttonのclickイベントを作成するには、Builderオブジェクトを作成し、BuilderオブジェクトでButtonを作成するdialogに戻る必要があることに注意してください.create();
次にoncreate()メソッドでshowDialog(100)を呼び出す.いいです.
二:Dialogオブジェクトdialogを直接newしてshow()とdismiss()メソッドを呼び出す
Builderオブジェクトbuilderをbuilderに作成し始めたことに注意してください.setView(textEntryView).creat()はcreat()を呼び出してDialogのオブジェクトを作成し、show()メソッドを呼び出してDialogダイアログボックスを表示します.
上でViewオブジェクトを作成するときに別の方法を使いました
final View textEntryView = LayoutInflater.from(this).inflate(R.layout.picturelayout, null);
LinearLayout ll = (LinearLayout)LayoutInflater.from(this).inflate(R.layout.picturelayout, null);
どちらでもいいですが、最初の方法をお勧めします.最初の方法はもっと大衆的なので、レイアウトが線形レイアウトではない場合があります.
Galleryの使い方:
呼び出し方法またはoncreate()メソッドでコードを呼び出せばいいです.
コントロールgalleryを見つけてから、galleryアダプタにデータを入れます.
ImageAdapterのページコードは次のとおりです.
具体的なGalleryの様々な使い方はブログ:AndroidのダイアログボックスAlertDialogの使用テクニックを参考にすることができます.
一:ActivityでonCreateDialog(int id)を書き換える方法でDialogのオブジェクトを作成して返し、ActivityのshowDialog(int id)とDismissDialog(int id)を呼び出してDialogダイアログボックスを表示および非表示にする
@Override
protected Dialog onCreateDialog(int id) {
AlertDialog.Builder dialog=null;
if(id==100){
LinearLayout ll = (LinearLayout)LayoutInflater.from(this).inflate(R.layout.picturelayout, null);
gallery = (Gallery)ll.findViewById(R.id.gallery1);
gallery.setAdapter(ia);
gallery.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
str = ia.Name(arg2);
}
});
dialog = new AlertDialog.Builder(this).setView(ll);
dialog.setPositiveButton(" ", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
dialog.setNegativeButton(" ", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
str=0;
}
});
}
return dialog.create();
}
上記の方法で作成する場合、Buttonのclickイベントを作成するには、Builderオブジェクトを作成し、BuilderオブジェクトでButtonを作成するdialogに戻る必要があることに注意してください.create();
次にoncreate()メソッドでshowDialog(100)を呼び出す.いいです.
二:Dialogオブジェクトdialogを直接newしてshow()とdismiss()メソッドを呼び出す
public void check(){
AlertDialog.Builder builder = new AlertDialog.Builder(SavePictureActivity.this);
final View textEntryView = LayoutInflater.from(this).inflate(R.layout.picturelayout, null);
// LinearLayout ll = (LinearLayout)LayoutInflater.from(this).inflate(R.layout.picturelayout, null);
gallery = (Gallery)textEntryView.findViewById(R.id.gallery1);
gallery.setAdapter(ia);
gallery.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
str = ia.Name(arg2);
}
});
builder.setPositiveButton(" ", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
});
builder.setNegativeButton(" ", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
str=0;
}
});
builder.setView(textEntryView).create().show();
}
Builderオブジェクトbuilderをbuilderに作成し始めたことに注意してください.setView(textEntryView).creat()はcreat()を呼び出してDialogのオブジェクトを作成し、show()メソッドを呼び出してDialogダイアログボックスを表示します.
上でViewオブジェクトを作成するときに別の方法を使いました
final View textEntryView = LayoutInflater.from(this).inflate(R.layout.picturelayout, null);
LinearLayout ll = (LinearLayout)LayoutInflater.from(this).inflate(R.layout.picturelayout, null);
どちらでもいいですが、最初の方法をお勧めします.最初の方法はもっと大衆的なので、レイアウトが線形レイアウトではない場合があります.
Galleryの使い方:
呼び出し方法またはoncreate()メソッドでコードを呼び出せばいいです.
ImageAdapter ia = new ImageAdapter(this);
gallery = (Gallery)textEntryView.findViewById(R.id.gallery1);
gallery.setAdapter(ia);
gallery.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
str = ia.Name(arg2);
}
});
コントロールgalleryを見つけてから、galleryアダプタにデータを入れます.
ImageAdapterのページコードは次のとおりです.
public class ImageAdapter extends BaseAdapter{
Context context;
public Integer[] myImageIds = {R.drawable.auto1, R.drawable.auto2,R.drawable.auto3,R.drawable.auto4,
R.drawable.auto5,R.drawable.bike,R.drawable.bike1};
public ImageAdapter(Context context){
this.context = context;
}
@Override
public int getCount() {
return myImageIds.length;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView iv = new ImageView(context);
iv.setImageResource(myImageIds[position]);
iv.setScaleType(ImageView.ScaleType.FIT_XY);
iv.setLayoutParams(new Gallery.LayoutParams(136, 88));
iv.setBackgroundColor(Color.WHITE);
return iv;
}
public int Name(int id){
return myImageIds[id];
}
}
具体的なGalleryの様々な使い方はブログ:AndroidのダイアログボックスAlertDialogの使用テクニックを参考にすることができます.