Android 如何使用自定义适配器在Gridview中获取项的值

Android 如何使用自定义适配器在Gridview中获取项的值,android,gridview,custom-adapter,listview-adapter,Android,Gridview,Custom Adapter,Listview Adapter,我有一个用于GridView适配器的自定义适配器 我想从所选项目中获取一个特定值,例如“戳记ID” 很久以前,我开发这个只显示邮票,现在我希望能够点击一张邮票,将他发送到下一页 我在互联网上寻找解决方案,但大多数教程都要求我对适配器代码进行大量修改(Witch意味着创建一个新类) 我需要知道是否有一个简单的方法来解决这个问题,使用适配器,我正在使用 这是StampActiviy类中连接的部分 GridView gridView = (GridView) findViewById(R.id.gvS

我有一个用于GridView适配器的自定义适配器

我想从所选项目中获取一个特定值,例如“戳记ID”

很久以前,我开发这个只显示邮票,现在我希望能够点击一张邮票,将他发送到下一页

我在互联网上寻找解决方案,但大多数教程都要求我对适配器代码进行大量修改(Witch意味着创建一个新类)

我需要知道是否有一个简单的方法来解决这个问题,使用适配器,我正在使用

这是StampActiviy类中连接的部分

GridView gridView = (GridView) findViewById(R.id.gvStamps);
// Pass the results into ListViewAdapter.java  adapterCollected,adapterunCollected
adapterListStamps = new ListViewListStampsAdapter(KioskStampsListActivity.this, arraylistStamps);
// Set the adapter to the ListView
gridView.setAdapter(adapterListStamps);

gridView.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1,
            int arg2, long arg3) {
        // I need to get StampId then send the user to next screen
        Toast.makeText(KioskStampsListActivity.this, ""+arg2+" - "+stampsUtil.getStampId(), Toast.LENGTH_LONG).show();


    }
});
谢谢

请尝试以下代码:

gridView.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1,
            int arg2, long arg3) {
        // I need to get StampId then send the user to next screen
        Toast.makeText(KioskStampsListActivity.this, ""+arg2+" - "+stampsUtil.getStampId(), Toast.LENGTH_LONG).show();

         System.out.println(arraylistStamps.get(i).getStampId());// you can get value 
    }
});
gridView.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共链接(AdapterView arg0、视图arg1、,
整数arg2,长arg3){
//我需要得到StampId,然后将用户发送到下一个屏幕
Toast.makeText(kioskstampslistativity.this,“+arg2+”-“+stampsUtil.getStampId(),Toast.LENGTH_LONG.show();
System.out.println(arraylistStamps.get(i).getStampId());//您可以获取值
}
});
您可以使用

grid.getItemAtPosition(position).toString();
我曾经这样用过:-

public static String getUrl(int position){
    String itemName = grid.getItemAtPosition(position).toString();
    return itemName;// Return your string value
}


类型ListViewListStampsAdaptergetStampId()的方法get(int)未定义,因为我没有将任何数据设置为stampID@AhmadSaleharg0.getAdapter().getItem(arg2)返回StampUser的对象为什么StampId是静态的?为什么在适配器中getItem返回null?您使用的是HashMaps而不是Stamp类的ArrayList吗?这段代码完全搞砸了
我需要知道是否有一种简单的方法可以使用我正在使用的适配器来解决这个问题
最简单的方法是学习更多的java并做更多的研究(好的,有一种更简单的方法-付费的人帮你做这些事情)
grid.getItemAtPosition(position).toString();
public static String getUrl(int position){
    String itemName = grid.getItemAtPosition(position).toString();
    return itemName;// Return your string value
}
gridView.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
        int arg2, long arg3) {

    String itemName = grid.getItemAtPosition(position).toString();
}});
@Override
public Object getItem(int position) {
    // TODO Auto-generated method stub
    return web[position]; //--> web is my array of string
}

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