用户单击gridview中的项目时如何获取图像文件

时间:2013-11-29 19:01:49

标签: android gridview onitemclicklistener

我是android的新手。在这个过程中,我想在用户点击gridview上的项目时获取图像文件。但我不知道如何保留它(图像文件)。我该怎么办?

这是我的主要活动

package com.example.mutitablesql;
+import java.io.File;
public class ChThemesActivity extends Activity{
private GridView gridview;
private ArrayList<Drawable> images;
private Context context;
private BooksDB db;
private MainActivity main;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout_grid);

    context = this;
    db = new BooksDB(context);

    //view matching 
    gridview = (GridView) findViewById(R.id.gridView);

    //เตรียมภาพ

    images = new ArrayList<Drawable>();
    images.add(getResources().getDrawable(R.drawable.theme1));

    //เรียกใช้ adapter
    gridview.setAdapter(new GridviewAdapter(context, images));

    //event
    gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?>  adapter, View view, int position,
                long id) {


        }
    });


    //check bok_id
    MainActivity mainAc = new MainActivity();
    int bok_id = mainAc.bok_id;
    Toast.makeText(getApplicationContext(), "book id is = "+bok_id, Toast.LENGTH_LONG).show();

}

}

这是我的适配器

package com.example.mutitablesql;

+import java.util.ArrayList;

public class GridviewAdapter extends BaseAdapter{


private Context context;
private ArrayList<Drawable> images;
private GridViewHolder gridviewholder;

//constructor
public GridviewAdapter(Context context,ArrayList<Drawable> images){
    this.context = context;
    this.images = images;
} 

@Override
public int getCount() {

    return this.images.size();
}

@Override
public Object getItem(int position) {
    // TODO Auto-generated method stub
    return this.images.get(position);
}

@Override
public long getItemId(int position) {
    // TODO Auto-generated method stub
    return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    if(convertView == null){

        convertView = LayoutInflater.from(context).inflate(R.layout.layout_griditem, null);
        gridviewholder = new GridViewHolder();
        gridviewholder.image = (ImageView) convertView.findViewById(R.id.imageView1);
        convertView.setTag(gridviewholder);
    }else{

        gridviewholder = (GridViewHolder) convertView.getTag();
    }

    //assign

    gridviewholder.image.setImageDrawable(images.get(position));

    return convertView;
}

 class GridViewHolder {
    public ImageView image;

}

}

非常感谢

0 个答案:

没有答案