为了账号安全,请及时绑定邮箱和手机立即绑定

如何从自定义数组列表中获取特定字符串的索引

如何从自定义数组列表中获取特定字符串的索引

眼眸繁星 2023-02-23 10:03:53
我想获取函数返回值的索引,但它只给我 -1 值。ArrayList<categoryoptions_class> arrayList;rb = new RadioButton[arrayList.size()];            for (int i = 0; i < arrayList.size(); i++) {                rb[i] = new RadioButton(detail_activity_rb.this);                rb[i].setPadding(5,5,5,5);                rb[i].setId(arrayList.get(i).getId());                rb[i].setTag(arrayList.get(i).getValue());                rb[i].setText(arrayList.get(i).getCategory_opt_name());                String a = checkdata(cat_id, rb[i].getId(), i);// this 'a' is returning perfect value but when i am trying to get the index of the value in a it gives me only -1; int sa = Arrays.asList(arrayList).indexOf(a);Toast.makeText(detail_activity_rb.this, sa + " :val", Toast.LENGTH_LONG).show();                //  int sa = i;                if (i == sa) {                    rb[i].setChecked(true);                }                rg.setPadding(5,5,5,5);                rg.addView(rb[i]);                checkpos(i,i);} public String checkdata(int cat_ids, int optids, int ia) {    String a = cat_ids + "";    String b = optids + "";    String c  = ia + "";    String aa = a + b;    Cursor cursor;   // Toast.makeText(getApplicationContext(),aa,Toast.LENGTH_LONG).show();    if(cat_type.equals("rb1"))    {         cursor = dbController.getdata("SELECT * FROM store_values WHERE catopt_id = '"+cat_ids+"';");    }    else    {         cursor = dbController.getdata("SELECT * FROM store_values WHERE catopt_id = '"+aa+"';");    }    //   arrayList.clear();    if (cursor.getCount() != 0)    {        String val = "";        while (cursor.moveToNext())        {            val = cursor.getString(8);        }        //Toast.makeText(detail_activity_rb.this,"H",Toast.LENGTH_LONG).show();        return val;    }    else    {        return "not";    }}
查看完整描述

3 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

由于您的 arraylist 是 categoryoptions_class 类型,但您想要通过 index of 获取的是一个字符串,因此它显然会返回 -1(未找到)。这是您可以尝试的东西:

  • 如果您的 categoryoptions_class 包含字符串类型的数据成员,并且您想要比较与该数据成员匹配的对象,则遍历 arraylist 并访问每个对象的该数据成员,然后在匹配时 breakout else 打印 -1。

  • 否则,如果您的 categoryoptions_class 没有将任何数据成员作为字符串进行比较,那么您将需要构造一个 categoryoptions_class 的对象,然后您可以使用 indexOf 选项。


查看完整回答
反对 回复 2023-02-23
?
FFIVE

TA贡献1797条经验 获得超6个赞

这里:

int sa = Arrays.asList(arrayList).indexOf(a);

那根本没有意义。即arrayList声明为:

ArrayList<categoryoptions_class> arrayList;

所以,您正在做的是:将 aArrayList<categoryoptions_class>变成 a List<ArrayList<categoryoptions_class>>。然后您询问该列表是否包含字符串

某物列表的列表肯定不会包含String 对象。

不幸的是,您的其余代码非常混乱,以至于我无法告诉您必须如何准确地“搜索”您的arrayList对象。


查看完整回答
反对 回复 2023-02-23
?
largeQ

TA贡献2039条经验 获得超7个赞

int index= 0;

                    for (categoryoptions_class categoryoptions_class : arrayList) {

                        if (categoryoptions_class.getCategory_opt_name().equals(a)) {

                            index= arrayList.indexOf(categoryoptions_class);

                            Log.d("Position", mArrayList.indexOf(products) + "");


                        }


                    }


查看完整回答
反对 回复 2023-02-23
  • 3 回答
  • 0 关注
  • 105 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信