我有一个用Kotlin编写的接口来进行REST调用(到目前为止): import io.reactivex.Observable import okhttp3.ResponseBody import retrofit2.Response import retrofit2.http.Body import retrofit2.http.POST const val PUSH_ENDPOINT = “prices/v1” interface ArticleSearchRestAdapter { @POST(“$PUSH_ENDPOINT/articles/search”) fun register(@Body articlerequest: ArticleRequest): Observable<Response> } 正如我所说,这个工程到目前为止,但在Android Studio的电脑重新启动后,图标变成了 从 至 。 然后其他使用ArticleSearchRestAdapter的类无法find此接口并标记为红色。 这是Androuid Studio中的错误吗? 哪里不对? IDE:Android Studio 3.0 Beta 6
通常,我们可以在kotlin中编写下面的代码: val hasValue : Boolean @JvmName(“hasValue”) get() = true 这将为Java interop生成方法hasValue()而不是getHasValue() 。 但是,在一个接口,这给了我一个编译错误: val hasValue : Boolean @JvmName(“hasValue”) get 抽象类中的以下声明也是如此: abstract val hasValue : Boolean @JvmName(“hasValue”) get 所以这里是我的问题:如何告诉kotlin编译器使用hasValue()而不是getHasValue()来获取kotlin接口中属性的getter(和setter)?
我像这样在kotlin中定义了一个监听器接口 interface FooListener { fun onCall() } 我认为返回types实际上是kotlin单位 然后我在java中实现了这个接口 FooListener l = new FooListener() { @Override public void onCall() { } } 这里的onCall函数实现是由IDE自动生成的 我编译时说错了 Error:(107, 85) error: ‘void’ type not allowed here 任何人都可以帮我解决这个问题吗?
当使用Kotlin for Android时,有一个特定的接口实现:从一个片段触发一个接口。 考虑一下Fragment必须将UI操作传递给父Activity的常见场景。 在Java中,我们将定义接口,创建它的“侦听器”实例,并在接口父节点中实现/覆盖动作。 这是创建一个监听器实例,对我来说不是那么简单。 一些谷歌搜索后,我find了一个实现的例子,但我不明白为什么它的作品。 有一个更好的方法吗? 为什么必须按照以下的方式来实施? class ImplementingFragment : Fragment(){ private lateinit var listener: FragmentEvent private lateinit var vFab: FloatingActionButton //Here is the key piece of code which triggers the interface which is befuddling to me override fun onAttach(context: Context?) { super.onAttach(context) if(context is FragmentEvent) { listener = context } } //Notice […]
我怎么能有这样的Kotlin的Java代码? 甚至IDE也不会完全将其转换为Kotlin! /** Defines callbacks for service binding, passed to bindService() */ private ServiceConnection mConnection = new ServiceConnection() { @Override public void onServiceConnected(ComponentName className, IBinder service) { // We’ve bound to LocalService, cast the IBinder and get LocalService instance LocalBinder binder = (LocalBinder) service; mService = binder.getService(); mBound = true; } @Override public void onServiceDisconnected(ComponentName […]
在我的生活中,我不能在Kotlin或Kotlin for Android中实例化一个片段之外的接口。 在Java中这是一个标准的过程,可以这样说: MyInterface mInterfaceListener = new MyInterface(this); mInterfaceListener.invokeSomeGenericMethod(); 请注意,mInterfaceListener指的是一个接口,而不是onCLickListener或类似的东西 接口如何在Kotlin中实例化? 我如何做一个“侦听器”并触发一个接口的function? 下面是一些非常简单的应用程序,我正在做的学习目的。 注意variablesmPresenterListener是一个接口 class QuoteActivity : QuoteContract.ViewOps, AppCompatActivity() { private lateinit var vText: TextView private lateinit var vFab: FloatingActionButton private lateinit var mPresenterListener: QuoteContract.PresenterOperations override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) mPresenterListener = this.mPresenterListener vText=findViewById(R.id.main_quote) vFab=findViewById(R.id.main_fab) vFab.setOnClickListener{ mPresenterListener.onQuoteRequested() } } override fun displayQuote(quote: […]