java - 无法在我的 ListView 上的自定义 ArrayAdapter 中获取所选项目索引

标签 java android selecteditem

我的 Android 项目有问题,因为我无法使用自己的 ArrayAdapter 从列表中获取选定的项目索引。我已经尝试了教程中的几个示例,但它们不起作用。解决方案是什么?

适配器

public class myProductAdapter extends ArrayAdapter<myProductsGroup> {

    private List<myProductsGroup> productList;
    private Context context;

    public myProductAdapter(List<myProductsGroup> productList, Context ctx) {
        super(ctx, R.layout.list_products_row, productList);
        this.productList = productList;
        this.context = ctx;
    }

    @Override
    public int getCount() {
    return productList.size();
    }

    /*
    public void onClick(View v) {
        int position = Integer.parseInt((String) v.getTag());

        OrderFirstGridPage.setSelectedItem(position);             
    }
    */

    public View getView(int position, View convertView, ViewGroup parent) {

        if (convertView == null) {
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(R.layout.list_products_row, parent, false);
        }
            TextView tv = (TextView) convertView.findViewById(R.id.title);
            tv.setTag(""+position);
            TextView distView = (TextView) convertView.findViewById(R.id.description);
            distView.setTag(""+position);
            tv.setText("aa");
        return convertView;
    }
}

Activity 中

lv = (ListView) findViewById(R.id.listView1);
lv.setAdapter(new myProductAdapter(setupArrayProductList((ArrayList<myProduct>) ProductList), OrderFirstGridPage.this));
lv.setSelector(R.drawable.selector_for_position_list);

最佳答案

尝试使用这行代码:

    lv = (ListView) findViewById(R.id.listView1);
    lv.setAdapter(new myProductAdapter(setupArrayProductList((ArrayList<myProduct>) ProductList), OrderFirstGridPage.this));
    lv.setSelector(R.drawable.selector_for_position_list);      

 lv.setOnItemClickListener(new OnItemClickListener() {

                                            @Override
                                            public void onItemClick(AdapterView<?> parent,
                                                    View view, int position, long id) {
                                                Log.d("My POSITION",""+position);

                                            }
                                        });

希望您能从选定的 ListView 中获得准确的位置。如果您遇到任何问题,请通知我。希望这会奏效。

关于java - 无法在我的 ListView 上的自定义 ArrayAdapter 中获取所选项目索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16690535/

相关文章:

Android 列表选择器在自定义 ListView 中不可见

java.lang.NoClassDefFoundError : Failed resolution

c# - 通过绑定(bind)到不同的 TreeView selectedItem 使用不同的数据模板

Java EE 依赖本地 EJB

java - SpringBoot2 - jpa 实体不是托管类型

java - 如何在另一个面板中显示一个面板?

.net - 在绑定(bind)到字典的组合框中设置所选项目

java - 音频剪辑卡住

android - 将 GestureOverlayView 添加到我的 SurfaceView 类,如何添加到 View 层次结构?

WPF ListView 显示所选项目