我想获取函数返回的值的索引,但它只给我-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";
}
}
答案 0 :(得分:1)
这里:
int sa = Arrays.asList(arrayList).indexOf(a);
那根本没有道理。 arrayList
被声明为:
ArrayList<categoryoptions_class> arrayList;
因此,您正在做的是:将ArrayList<categoryoptions_class>
变成List<ArrayList<categoryoptions_class>>
。然后,您询问该列表是否包含字符串。
可以肯定的列表列表不包含一个String对象。
不幸的是,您的其余代码太混乱了,使我无法告诉您必须如何“搜索” arrayList
对象。
答案 1 :(得分:1)
由于您的数组列表属于categoryoptions_class类型,但是您想要通过索引获取的是字符串,因此它显然将返回-1(未找到)。您可以输入以下内容:
答案 2 :(得分:0)
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) + "");
}
}