Android的gridview的OnItemClickListener [英] Android gridview OnItemClickListener

查看:217
本文介绍了Android的gridview的OnItemClickListener的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我成功地创建一个自定义的GridView(带图像和文字)。现在我想写一个OnItemClickListener method.I可以得到OnItemClickListener法的立场,但我希望能够点击朋友看的项目点击:朋友

I successfully created a custom gridview(with images and texts). Now I want to write an OnItemClickListener method.I can get the position on OnItemClickListener method, but I want to be able to click "Friend" and see "Item clicked : Friend"

我怎样才能选择字符串,而不是持何立场?
下面是我的源$ C ​​$ C

How can I get the select string instead of the position? Here is my source code

public class Item {
Bitmap image;
String title;

public Item(Bitmap image, String title) {
    super();
    this.image = image;
    this.title = title;
}
public Bitmap getImage() {
    return image;
}
public void setImage(Bitmap image) {
    this.image = image;
}
public String getTitle() {
    return title;
}
public void setTitle(String title) {
    this.title = title;
}



public class CustomGridViewAdapter extends ArrayAdapter<Item> {
Context context;
int layoutResourceId;
ArrayList<Item> data = new ArrayList<Item>();
public static Item item ;

public CustomGridViewAdapter(Context context, int layoutResourceId,
        ArrayList<Item> data) {
    super(context, layoutResourceId, data);
    this.layoutResourceId = layoutResourceId;
    this.context = context;
    this.data = data;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View row = convertView;
    RecordHolder holder = null;

    if (row == null) {
        LayoutInflater inflater = ((Activity) context).getLayoutInflater();
        row = inflater.inflate(layoutResourceId, parent, false);

        holder = new RecordHolder();
        holder.txtTitle = (TextView) row.findViewById(R.id.item_text);
        holder.imageItem = (ImageView) row.findViewById(R.id.item_image);
        row.setTag(holder);
    } else {
        holder = (RecordHolder) row.getTag();
    }

    item= data.get(position);
    holder.txtTitle.setText(item.getTitle());
    holder.imageItem.setImageBitmap(item.getImage());
    return row;

}

public static class RecordHolder {
    public static TextView txtTitle;
    ImageView imageItem;

}

}

public class MainActivity extends Activity {
GridView gridView;
ArrayList<Item> gridArray = new ArrayList<Item>();
CustomGridViewAdapter customGridAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // set grid view item
    Bitmap homeIcon = BitmapFactory.decodeResource(this.getResources(),
            R.drawable.home);
    Bitmap userIcon = BitmapFactory.decodeResource(this.getResources(),
            R.drawable.personal);

    gridArray.add(new Item(homeIcon, "Home"));
    gridArray.add(new Item(userIcon, "User"));
    gridArray.add(new Item(homeIcon, "House"));
    gridArray.add(new Item(userIcon, "Friend"));
    gridArray.add(new Item(homeIcon, "Home"));
    gridArray.add(new Item(userIcon, "Personal"));
    gridArray.add(new Item(homeIcon, "Home"));
    gridArray.add(new Item(userIcon, "User"));
    gridArray.add(new Item(homeIcon, "Building"));
    gridArray.add(new Item(userIcon, "User"));
    gridArray.add(new Item(homeIcon, "Home"));
    gridArray.add(new Item(userIcon, "xyz"));

    gridView = (GridView) findViewById(R.id.gridView1);
    customGridAdapter = new CustomGridViewAdapter(this, R.layout.row_grid,
            gridArray);
    gridView.setAdapter(customGridAdapter);
    gridView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            Toast.makeText(getApplicationContext(),
                    "Item Clicked: " + position, Toast.LENGTH_SHORT).show();

        }
    });
}

}

推荐答案

更改此

Toast.makeText(getApplicationContext(),
                    "Item Clicked: " + position, Toast.LENGTH_SHORT).show();

Toast.makeText(getApplicationContext(),
                        "Item Clicked: " + ((TextView) v.findViewById(R.id.item_text)).getText(), Toast.LENGTH_SHORT).show();

这篇关于Android的gridview的OnItemClickListener的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆