Tag: 安卓

Java / Android / Kotlin:关于私人领域的反思和调用公共方法

是否可以使用reflection来访问对象的私人领域,并调用该领域的公共方法? 即 class Hello { private World word } class World { public BlaBlaBla foo() } Hello h = new Hello() World world = reflect on the h // And then world.foo()

如何从kotlin的匿名类实现中更改全局variables

fun loadTweets(uid: Int) : Observable<ArrayList> { var tweets: ArrayList = ArrayList() val builder: Retrofit.Builder = Retrofit.Builder() .baseUrl(NetworkContract.SERVER_URL) .addConverterFactory(GsonConverterFactory.create()) val retrofit: Retrofit = builder.build() val userService: UserService = retrofit.create(UserService::class.java) val call: Call<List> = userService.loadTweets(uid) call.enqueue(object: Callback<List>{ override fun onResponse(call: Call<List>?, response: Response<List>?) { if(response!!.isSuccessful){ val tweetsTemp: ArrayList = ArrayList() tweetsTemp.add(Tweet(“Test!”, “Tom”)) mTweets = tweetsTemp } } […]

使用Kotlin无法反序列化Gson的JSON(仅适用于Android KitKat,可能更低)

正如标题描述我试图反序列化一些JSON这样做: val jsonResponse = ApiClientLive().get(“events/” + id.toString() + “.json”) val event = GsonBuilder().create().fromJson(jsonResponse, Event::class.java) // course1.name!!.compareTo(course2.name!!, ignoreCase = true) } 这只会在Android KitKat,Api级别19运行时崩溃,这是崩溃消息:(19是我支持的最低,所以我不知道更低的api水平) onError() java.lang.RuntimeException: Unable to invoke no-args constructor for class …event.models.Event. Registering an InstanceCreator with Gson for this type may fix this problem. at com.google.gson.internal.ConstructorConstructor$14.construct(ConstructorConstructor.java:226) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:210) at com.google.gson.Gson.fromJson(Gson.java:888) at com.google.gson.Gson.fromJson(Gson.java:853) at com.google.gson.Gson.fromJson(Gson.java:802) at […]

当使用kotlin找不到文件时,如何从URL.readText()中获取错误

当我的手机上没有互联网,或者当这个URL不存在时,这个方法没有做任何事情,既不会崩溃也不会停止搜索。 我试过这个: doAsync{ val json:String json = try { URL(“http://10.0.2.2:8888/bac/orient.php?ort=1”).readText() }catch (e: IOException){ e.printStackTrace() “” } uiThread{toast(json)} }

Android Kotlin如何在多选列表视图中选中checkbox

我有一个多选列表视图。 我想检查一些checkbox,但不是全部。 我正在尝试下面的代码,但不知道从哪里去,或者如果这是一个开始。 val listView = findViewById(R.id.mylist_listview) val values = arrayOf(“One”, “Two”, “Three”) val list = ArrayList() for (i in values.indices) { list.add(values[i]) } val adapter = ArrayAdapter(this, android.R.layout.simple_list_item_multiple_choice, list) listView.setAdapter(adapter) val cntChoice = listView.getCount() for (i in 0 until cntChoice) { listView. //Something to check boxes } }

处理android kotlin中的click事件:setOnClickListener只有在双击时才起作用

我在DialogFragment中有一个按钮可以返回到另一个活动。 但只有双击时才能使用。 我正在用尽想法。 在我的XML文件中,我已经尝试了以下(以不同的方式组合,但没有一个工作) 我的整个片段的XML文件 至于我的DialogFragment,我试图把我的setOnClickListener放在onViewCreated()方法里面,然后放在onStart()里面和onResume()方法里面。 它只在双击时才能工作。 我也有一个计时器,让对话在10秒后消失,然后把我带到我想要的活动,所以这不是一个问题,但我真的需要并想要解决它。 如果我将计时器设置为5秒或更低,当然,它给人的印象是按钮一次点击,但实际上没有。 class PaymentDoneDialogFragment : DialogFragment() { private lateinit var mYesBtn: Button private lateinit var mActionYes: () -> Unit override fun onViewCreated(view: View, @Nullable savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) dialog.setCanceledOnTouchOutside(false) dialog.window.requestFeature(Window.FEATURE_NO_TITLE) dialog.window.setDimAmount(.85f) dialog.window.setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE) dialog.setCancelable(false) dialog.setCanceledOnTouchOutside(false) dialog.window.decorView.systemUiVisibility = activity?.window!!.decorView.systemUiVisibility dialog.window.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE) mDialogTitle = view.find(R.id.tv_payment_done_title) if (mTitle != null) { […]

如何在Kotlin中制作一个双向转换器? (在Java中工作)

我得到这个错误: 错误:(32,50)在类br.com.martinlabs中找不到方法indexFromModel(android.databinding.ObservableList ,br.com.martinlabs.usecase.model.GrupoDoPrincipal) .usecase.viewtools.Converters 但是我在Converters上有这个方法:(我已经尝试了一个类中的伴随对象) object Converters { fun indexFromModel(list: ObservableList, model: GrupoDoPrincipal): Int { return list.indexOfFirst { it?.id == model?.id } } @InverseMethod(“indexFromModel”) fun indexToModel(list: ObservableList, index: Int): GrupoDoPrincipal { return index.let { list[it] } } } 用法: 这个方法适用于Java: public static int indexFromModel(ObservableList list, GrupoDoPrincipal model) { for (int i = 0; i < […]

当我点击EditText时如何禁用键盘?

你好我想做的下一件事:当我点击一个EditText我想隐藏键盘,但看到光标。 我试图做到这一点: editText_test!!.setCursorVisible(false); editText_test!!.setFocusableInTouchMode(false); editText_test!!.setFocusable(true); 显然我没有看到键盘,但我不能点击我的EditText。 我怎样才能做到这一点 ? 准确地说,我正在使用Kotlin。 谢谢 !

Firebase和检索元素

我正在尝试从Firebase中读取x个元素,但是我有一种感觉,我误解了一些东西。 DataSnapshot返回正确的子数,但是当我试图循环通过子,循环从不执行。 注意:代码在Kotlin fun list(count: Int, callback: ListCallback) { val playersRef = firebase.child(“players”) val queryRef = playersRef.orderByChild(“rank”).limitToFirst(count) queryRef.addListenerForSingleValueEvent(object : ValueEventListener { override fun onCancelled(error: FirebaseError?) { Log.e(“firebase”, error!!.message) } override fun onDataChange(snapshot: DataSnapshot?) { val children = snapshot!!.children // This returns the correct child count… Log.i(“firebase”, children.count().toString()) val list = ArrayList() // However, this loop […]

Retrofit2返回null kotlin中的单位为204否内容响应

我正在使用Retrofit 2.0.2使用以下界面将数据发布到服务器: @POST(“/path/to/post”) fun postData(/*args*/): Observable 并从服务器收到成功的回应。 05-09 21:20:21.770 23117 23224 D OkHttp : –> POST https://myserver.com/api/notifications/123/markRead http/1.1 05-09 21:20:21.770 23117 23224 D OkHttp : Content-Length: 0 05-09 21:20:21.770 23117 23224 D OkHttp : User-Agent: MyUserAgent 05-09 21:20:21.770 23117 23224 D OkHttp : Authorization: Bearer xxxxx 05-09 21:20:21.770 23117 23224 D OkHttp : –> END […]