Tag: arraylist

找到重复的蓝牙设备。 我在这里双倍浸泡? 也能够更新recyclerview

我试图建立一个Android应用程序,扫描蓝牙设备,并将其添加到recyclerview。 当我试图清除我的arraylist并添加新的数据,在适配器我结束了一个空的arraylist。 当我不清除列表我结束了包含每个设备两次这样的列表: [**:71:9F:B6:59:**, **:71:9F:B6:59:**]在logcat中。 我也认为我在这里与我的notifydatasetchanged调用这里做错了什么,因为什么都不显示在我的recyclerview。 我敢肯定,这是简单的,我失踪,但我不能看到它。 我发布我的主要活动的代码,也是我的recyclerview.adapter,希望有人能指出我的问题。 提前致谢。 这是我的主要活动: public class ToofActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener { private static final String TAG = "ToofActivity"; private static final int REQUEST_COARSE_LOCATION = 222; private static BluetoothAdapter btAdapter; private TextView mStatusLabel; private Switch mStatusSwitch; private ProgressBar mProgressBar; private RecyclerView mDeviceRecylcer; private static ArrayList<BluetoothDevice> mDevices = new ArrayList<>(); […]

如何使用gson序列化Pair的ArrayList

我正试图反序列化一个类型的对象 ArrayList<Pair<OuterData, ArrayList<InnerData>>> 其中OuterData和InnerData是使用gson的POJO。 我已经努力了,但是我无法做到。 我正进入(状态 java.lang.ClassCastException:com.google.gson.internal.LinkedTreeMap无法转换为v2015.oasis.pilani.bits.com.home.events.inner.InnerData 每当我尝试做new Gson().fromJson(json, type); 其中type是从TypeToken使用获得的 new TypeToken<ArrayList<Pair<OuterData, ArrayList<InnerData>>>>(){}.getType() 我虽然使用类型将解决我的问题,因为最初我不想使用它,但它没有。 任何帮助表示赞赏。 编辑:这里是OuterData和InnerData类(在kotlin中) data class InnerData(val name: String, val category: String, val categoryIcon: Int, val description: String, val rules: String, val time: String, val date: String, val venue: String, val notifyState: Boolean, val notifyTime: Int, val favouriteState: Boolean) data class OuterData(val […]

Kotlin arrayList – 不能重写列表

我正在使用名为ItemHolder的类来保存列表中的一些对象。 动态地添加一些。 在某个时候,我需要清除项目(所有这些)以添加新项目。 当我尝试从列表中获取项目时,我得到IndexOutOfBoundException。 这是我使用的代码: 在ItemHolder中 var itemList : ArrayList<Item> = arrayListOf() 在init的另一个类中: itemHolder.itemList = arrayListOf() 后来在同一个班级: itemHolder.itemList.add(position, database.getRandomData()) 和: itemHolder.getItem(position) 问题是,当我第一次使用类,它工作正常,但第二次抛出我的例外。 FATAL EXCEPTION: main Process: studio.monk.rq, PID: 2812 java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.get(ArrayList.java:411) at studio.monk.rq.common.ItemHolder.getItem(ItemHolder.kt:9) at studio.monk.rq.fragments.MainFragment$onCreateView$vpPageChangeListener$1.onPageSelected(MainFragment.kt:44) at studio.monk.rq.fragments.MainFragment$onCreateView$1.run(MainFragment.kt:51) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) […]

IndexOutOfBoundsException for Kotlin for循环

我有两个相同大小的Kotlin列表, foodObjects: MutableList<ParseObject>? 并checked: MutableList<Boolean>? 。 我需要做一个for循环,每次checked一个元素为true时,从foodObjects获取objectId。 所以这是在Java中: for(int i = 0; i< foodObjects.size(); i++) { //here } 但是在科特林,我不知道为什么,有一些问题。 事实上,如果我这样做: for(i in 0..foodObjects!!.size) { if (checked?.get(i) == true) { objectsId?.add(foodObjects.get(i).objectId) } } 我有IndexOutOfBoundsException :我不知道为什么,它继续在foodObjects.size循环。 我也可以用过滤器和地图来做到这一点: (0..foodObjects!!.size) .filter { checked?.get(it) == true } .forEach { objectsId?.add(foodObjects.get(it).objectId) } 但是我给了同样的错误。 我需要停止使用这个如果: for(i in 0..foodObjects!!.size) { if(i < foodObjects.size) […]