나는 gridView를 가지고 있으며 사용자가 누를 수있는 gridView에 imagebutton을 갖고 싶습니다. gridView에 다른 새로운 뷰를 생성합니다. 나는 모든 gridView 항목을 동일한 onClick 메서드로 만들지 않기를 바란다. 왜냐하면 긴 드래그를 사용하는 드래그 앤 드롭 기능을 추가하기 때문에 gridView를 "clickable = true"로 설정하더라도 이렇게한다. ", 그것은 여전히 내 모든 gridView 항목을 클릭 할 수 없게 만듭니다.) 그래서 어떻게 할 수 있는지 궁금합니다. 여기 gridview에 이미지 버튼 추가하기
은 GRIDVIEW에 대한 XML입니다 :<GridView
android:id="@+id/GRIDVIEW1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dip"
android:numColumns="auto_fit"
android:columnWidth="60dp"
android:horizontalSpacing="10dp"
android:verticalSpacing="10dp"
android:gravity="center"
android:stretchMode="columnWidth"
android:clickable="true"
>
</GridView>
여기 내 사용자 지정 어댑터입니다 :
package com.example.awesomefilebuilderwidget;
IMPORTS
public class GridViewAdapter extends BaseAdapter {
private Context Context;
// Keep all Images in array list
public ArrayList<Integer> drawables = new ArrayList<Integer>();
CheckBox mCheckBox=null;
// Constructor
public GridViewAdapter(Context c){
Context = c;
Log.d("GridViewAdapter", "Constructor is set");
drawables.add(R.drawable.pattern1);
Log.d("GridViewAdapter", "pattern1 added");
drawables.add(R.drawable.pattern2);
Log.d("GridViewAdapter", "pattern2 added");
drawables.add(R.drawable.trashcan);
Log.d("GridViewAdapter", "trashcan added");
drawables.add(R.drawable.ic_launcher);
Log.d("GridViewAdapter", "ic_launcher added");
}
public void setCheckBox(CheckBox checkbox){
mCheckBox=checkbox;
}
@Override
// How many items are in the data set represented by this Adapter
public int getCount() {
return drawables.size();
}
@Override
// Get the data item associated with the specified position in the
// data set
public Object getItem(int position) {
return drawables.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// Try to reuse the views
ImageView view = (ImageView) convertView;
boolean checked = (mCheckBox==null)?false:(((CheckBox) mCheckBox).isChecked());
// if convert view is null then create a new instance else reuse it
if (view == null) {
view = new ImageView(Context);
Log.d("GridViewAdapter", "new imageView added");
view.setId(R.id.iconImageView_id);
}
if(checked == true){
isSdReadable();
Log.i("GridViewAdapter", "checkbox is checked");
} else {
Log.i("GridView", "Icons not for use/checkbox not checked");
}
/* view.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
ImageView folder = new ImageView(Context);
folder.setImageResource(R.drawable.ic_launcher);
}
});*/
view.setImageResource(drawables.get(position));
view.setScaleType(ImageView.ScaleType.CENTER_CROP);
view.setLayoutParams(new android.widget.GridView.LayoutParams(70, 70));
view.setTag(String.valueOf(position));
return view;
}
}
나는 실제의 GridView에하여 ImageButton을 넣어 설정할 수있는 방법이 있나요 onClick 메서드는 다음과 같습니다.
view.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
ImageView folder = new ImageView(Context);
folder.setImageResource(R.drawable.ic_launcher);
}
});*/
? 나는 주변을 둘러 보았지만 실제로 도움이되는 것을 찾지 못했습니다.
또한 add_button (사용자가 이미지를 ic_launcher로 새보기로 만들기 위해 푸시하는 버튼)을 생성자에 추가하려고 시도했지만 어떻게하면 만들 수 있습니까? 첫 번째 gridView 항목 만 클릭 할 수 있고 다른 imageViews에는 영향을 미치지 않도록하려면?