将应用程序传递给AndroidViewModel

我想为我的视图模型使用AndroidViewModel来访问Context 。 它要求Application作为参数传递。 我的ViewModel类看起来像这样: class FooAndroidViewModel(application: Application?) : AndroidViewModel(aplication) { … } 它得到像这样实例化: val fooModel = ViewModelProviders.of(this).get(FooAndroidViewModel::class.java) 问题是,这给出了一个错误, FooAndroidViewModel不能实例化 – 可能是因为缺少application参数。 问题:如何将application传递给ViewModelProviders.of(this).get(FooAndroidViewModel::class.java) ?

链接承诺自定义错误类型与Kovenant

我正在使用Retrofit来访问一个REST API,我想用Kovenant的函数来链接几个工作单元。 换句话说,我想将一个API调用的输出作为参数提供给另一个API调用。 我已经定义了一个自定义的错误类型,它包含一个属性来包含API特定的错误代码,定义如下: class ApiError(val statusCode: Int, val apiErrorCode: Int, val message: String) 如果在API调用期间发生错误,则使用适当的错误代码创建此类的实例。 根据Kovenant的文档,我可以创建一个Deferred<V, E>的实例来获得Promise<V, E> 。 我希望我可以提供泛型参数E ApiError 。 我没有看到Kovenant的Deferred定义中的任何通用约束,似乎要求E是一个Exception 。 这就是说,当我试图链接两个函数返回Promise<V, ApiError>使用, then我收到一个编译器错误,说明预期的类型, then是Promise<V, Exception> 。 我可以使Kovenant工作与自定义错误类型,如果不是,是否继承异常包括属性我需要正确的解决方案,我试图实现?

TornadoFX – 使用ContextMenu右键单击选项移除项目

所以我有一个表格视图,显示AccountsArrayList Account(name, login, pass) ,这些都是数据类。 当我右键单击一个单元格时弹出删除选项。 我想要做的是从observedArrayList删除该Account 只有我找不到办法做到这一点。 我没有JavaFX或TornadoFX的经验,我也无法找到答案谷歌或在TornadoFX指南和文档。 这是我的代码: class ToolView : View() { override val root = VBox() companion object handler { //val account1 = Account("Google", "martvdham@gmail.com", "kkk") //val account2 = Account("Google", "martvdham@gmail.com", "Password") var accounts = FXCollections.observableArrayList<Account>( ) var gson = GsonBuilder().setPrettyPrinting().create() val ggson = Gson() fun writeData(){ FileWriter("accounts.json").use { ggson.toJson(accounts, it) […]

Kotlin循环与不规则的步骤

我一直在试图翻译成表达式的Java到产生这个序列的Kotlin: 1,2,4,8,16,32,64 这是Java代码: for(int i = 1; i < 100; i = i + i) { System.out.printf("%d,", i); } 我发现把这个翻译成Kotlin的唯一方法是: var i = 1 while (i < 100) { print("$i,") i += i } 我试图使用步骤表达式,但是这似乎不工作。 有没有什么方法可以在Kotlin中更优雅地表达这种类型的序列? 我知道你可以有这样的代码使用Kotlin + Java 9: Stream.iterate(1, { it <= 100 }) { it!! + it }.forEach { print("$it,") } 但是这依赖于Java库,我更喜欢Kotlin本地库。

尝试访问继承字段时发生NullPointerException

在尝试访问父类中的重写变量时,我正在获取NPE java.lang.NullPointerException: Attempt to get length of null array at app.deadmc.materiallivewallpaper.model.Square.<init>(Square.kt:29) at app.deadmc.materiallivewallpaper.model.Cube.<init>(Cube.kt:8) at app.deadmc.materiallivewallpaper.renderer.MaterialRenderer.onSurfaceCreated(MaterialRenderer.kt:40) at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1548) at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1286) 我将展示简化的代码,以解决未知的问题 我有一个绘画广场的课 open class Square(renderer: ReadyRenderer) { val COORDS_PER_VERTEX = 3 open val triangleCoords = floatArrayOf( //first triangle -1.0f, 1.0f, 0.0f, -1.0f, -1.0f, 0.0f, 1.0f, 1.0f, 0.0f, //second triangle -1.0f, -1.0f, 0.0f, 1.0f, -1.0f, 0.0f, 1.0f, […]

由于接收器类型不匹配,以下候选人都不负责任

在Android项目上工作一切正常,直到现在。 得到这个错误 由于接收器类型不匹配,以下候选人都不负责任 。 它发生在我的意见的编号。 以下是代码 override fun getView(postion: Int, p1: View?, p2: ViewGroup?): View { val myView = View.inflate(con, R.layout.item, null) val Tanamo = this.lis[postion] myView.txt1.text = Tanamo.Title myView.txt2.text = Tanamo.Author myView.but!!.setBackgroundResource(android.R.drawable.ic_media_play) myView.but.setOnClickListener({ if (playRadio) { playRadio = false medi!!.stop() myView.but!!.setBackgroundResource(android.R.drawable.ic_media_play) } else { playRadio = true medi = MediaPlayer() try { medi!!.setDataSource(Tanamo.Url) medi!!.prepare() […]

在Recycler视图上复制适配器

嗨新编程和我的问题是当我切换标签上我的导航。 我的数据重新加载时重复。 httpClient.get(url, object : JsonHttpResponseHandler() { override fun onSuccess(statusCode: Int, headers: Array<out Header>, response: JSONArray) { for (i in 0 until response.length()) { val seminar = Seminar.fromJson(response.getJSONObject(i)) seminarsAdapter.add(SeminarItem(seminar)) } } override fun onFailure(statusCode: Int, headers: Array<out Header>?, responseString: String?, throwable: Throwable?) { Log.d("Seminars Fragment", throwable?.localizedMessage) } })

如何运行python脚本,而无需一次又一次地在cmd上写命令

我正在练习python代码,并通过命令行执行它。 每次我必须执行我的python文件我去cmd和写 D:\PythonPractice>python myClass.py 有没有任何标准和舒适的方式可以快速执行python代码?

Ebean @ManyToOne,finder不检索相关对象的所有数据

我正在使用Ebean作为我的对象映射,而且我也是这样创建了我的SQL表 create table company ( id int auto_increment not null primary key, name varchar(100) ); create table employee ( id int auto_increment not null primary key, name varchar(100) not null, company_id int not null, constraint foreign key (company_id) references company (id) on delete restrict on update restrict ); 这是Ebean公司的模式 import javax.persistence.Entity; import javax.persistence.Id; import com.avaje.ebean.Model; […]

根据滑动方向移动视图

我有一组imageView,我想根据滑动的方向来移动它们,但是这里的问题是,在第一次向下滑动之后,它们会停止向下移动,同样的事情也会发生。 这里是我的代码: imageView.setOnTouchListener(object : OnSwipeTouchListener(this) { override fun onSwipeTop() { dis = distance(imageView) imageView.animate().translationY(-dis) } override fun onSwipeLeft() { dis = distance(imageView) imageView.animate().translationX(-dis) } override fun onSwipeRight() { dis = distance(imageView) imageView.animate().translationX(dis) } override fun onSwipeBottom() { dis = distance(imageView) imageView.animate().translationY(dis) } }) 这里是执行distance()函数: fun distance(_view: ImageView): Float { when (resources.displayMetrics.density) { 0.75F -> return […]