Tag: 安卓

lateinit属性主持人还没有被EasyMVP,Robolectric和Kotlin初始化

尝试使用Robolectric测试正在使用EasyMvp的活动时遇到问题。 所有的课程都是用Kotlin写的。 这是一个活动的开始: @ActivityView(layout = R.layout.activity_access, presenter = AccessPresenterImpl::class) class AccessActivity : BaseActivity(), AccessView { @Presenter lateinit var presenter: AccessPresenter override fun providePresenter(): BasePresenter? { return presenter } 在onStart上,每个活动都在演示者中初始化临时演员。 我试图在我的应用程序中介绍Robolectric测试。 var activity: AccessActivity? = null var loginEditText: EditText? = null var passwordEditText: EditText? = null @Before fun initData() { activity = Robolectric.setupActivity(AccessActivity::class.java) loginEditText = activity?.findViewById(R.id.loginEditText) […]

Android中的Kotlin协程:为什么要使用Anko中的bg()而不是async()?

我今天开始在Android上使用Kotlin协同程序,并且注意到Anko对它们有一套自己的辅助方法。 我明白为什么asReference()存在,但我不明白为什么bg() asReference() ,因为核心协程库lib已经具有async() 。 bg()代码非常简单,它内部使用async() : @PublishedApi internal var POOL = newFixedThreadPoolContext(2 * Runtime.getRuntime().availableProcessors(), “bg”) inline fun bg(crossinline block: () -> T): Deferred = async(POOL) { block() } 那么使用bg()而不是async()的优点是什么? 对于Android应用程序, async()效率低下吗?

LiveData观察者的Kotlin语法?

我在HomeActivity中使用LiveData有以下一些代码。 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // Show the launch splash screen. // this.setContentView(R.layout.activity_home) this.viewModel = ViewModelProviders.of(this).get(HomeViewModel::class.java) this.viewModel.getUser().observe(this, Observer { user: User? -> }); } 虽然这似乎工作,以下部分是什么意思? Observer { user: User? -> } 这必须产生一个符合Observer接口的对象 void onChanged (T t) https://developer.android.com/reference/android/arch/lifecycle/Observer.html 如何 Observer { user: User? -> } 导致与onChanged方法的对象? 我不知道是什么把一个接口的名称放在lambdaexpression式的前面。 谢谢!

我现在正在用Kotlin开发一个Android应用程序,但是发生了一个错误:CompilationException:无法将方法调用“readText”内联到

我现在正在学习kotlin,但是当我尝试使用它来进行网络请求时,AndroidStudio在我的代码中抛出了一个exception。 public class CustomRequest(val city_code:String){ fun execute():ForecastResult{ val url = URL(SERVER+PARAM) val forecastResStr = url.readText() Log.e(“MyApplication”,forecastResStr) return JSON.parseObject(forecastResStr,ForecastResult::class.java) } } 现在我不能编译我的应用程序,请help.Thanks。 这里是个例外: Error:(18, 59) org.jetbrains.kotlin.codegen.CompilationException: Back-end (JVM) Internal error: Couldn’t inline method call ‘readText’ into fun execute():DataResult{ val resultStr = URL (COMPLETE_URL+city_code).readText() return JSON.parseObject(resultStr,SomeClass::class.java) } cause: Not generated Cause: List has more than one element. […]

recyclerview notifyDataSetChanged()不工作 – kotlin

回收者视图不会更新后调用notifyDataSetChanged(),我发现了问题,但没有解决方案。 这里是我更改数据的代码 fun changeData(data: List) { // checking the size of the list before logI(“accountLiteList.size before: ” + accountLiteList.size) accountLiteList = data.toMutableList() // checking the size of the list after logI(“accountLiteList.size after: ” + accountLiteList.size) notifyDataSetChanged() } 但getItemCount()仍然返回0 这里是getItemCount()的代码 override fun getItemCount(): Int { logI(“getItemCount: ” + accountLiteList.size) return accountLiteList.size } 这里是日志 AccountsRecyclerAdaptor: accountLiteList.size before: […]

在Kotlin安装和Getters

我试图从一个按钮被按下时,从另一个活动更改trx的值,我试过的是 ScoresActivity.kt : class ScoresActivity : AppCompatActivity(), View.OnClickListener { var trx = 0 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_scores) } } 其他职业: override fun onClick(p0: View?) { when(p0){ button_1 -> { ScoresActivity().trx = 5 } } 但是,只要我打印trx的值是0。

预期types不接受Java中的空值,但Kotlin中的值可能为空

我正在构建一个运动应用程序,并在编译期间遇到问题。 getCachedSubmission函数内部的提交variables为null,似乎需要一个空的句柄,但我不确定。 这是下面的代码: import com.bluebeam.premierleaguego.features.model.SubmissionWrapper import com.bluebeam.premierleaguego.data.reddit.RedditAuthentication import com.bluebeam.premierleaguego.data.service.RedditService import com.google.common.base.Optional import io.reactivex.Single import net.dean.jraw.models.CommentSort import net.dean.jraw.models.Submission import java.util.* import javax.inject.Inject import javax.inject.Singleton import javax.annotation.Nullable /** * Implementation of the [SubmissionRepository] interface. Stores [SubmissionWrapper]s in a map * keyed by their id. * TODO: should there be a limit to how many submissions are cached? […]

Android Kotlin类实现的问题

当我想从sharedpreferences得到int值时,我得到了UnsupportedOperationException但是我从logcat显示,这个类是Int 。 怎么了? operator inline fun get(@XMLS xml: String, @KEYS key: String, defaultValue: T? = null): T { Timber.d(“${T::class} + $xml + $key + $defaultValue”) return when (T::class) { String::class -> getShared(xml)?.getString(key, defaultValue as? String ?: “”) as? T ?: “” as T Int::class -> { Timber.d(“not triggered”) //< getShared(xml)?.getBoolean(key, defaultValue as? Boolean == true) […]

Kotlin Firebase存储imageUri错误

参考.putFile(imageUri) kotlin.UninitializedPropertyAccessException: lateinit property imageUri has not been initialized at com.ysnel.envantert.StandUpdate.update(StandUpdate.kt:177) at com.ysnel.envantert.StandUpdate.access$update(StandUpdate.kt:19) at com.ysnel.envantert.StandUpdate$onCreate$3.onClick(StandUpdate.kt:73) at android.view.View.performClick(View.java:5076) at android.view.View$PerformClick.run(View.java:20279) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5930) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1405) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200)

Android Kotlin – 如何使java builder setter方法

所以我已经阅读了这篇文章,但我不认为它完全是我想要的。 我有一个匕首通过构造函数注入为我创建的对象。 让我们开始在java中看起来像: public class AlgoliaSearchUsecase extends BaseUseCase { private final Index algoliaIndex; private final SearchRepository searchRepository; String query; int pageNum; @Inject public AlgoliaSearchUsecase(Index algoliaIndex, SearchRepository searchRepository, LoginRepository loginRepository) { super(loginRepository); this.algoliaIndex = algoliaIndex; this.searchRepository = searchRepository; } @Override protected Observable buildUseCaseObservable() { return searchRepository.fetchAlgoliaSearchResults(query,algoliaIndex,pageNum); } //***THESE TWO SETTERS ARE KEY TO MY QUESTION ********** […]