我正在尝试制作一个可以插入其他Anko组件的工具栏。 这是我要做的一个例子: class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) MainUI().setContentView(this) val toolbar: Toolbar = find(R.id.toolbar) setSupportActionBar(toolbar) } } class MainUI : AnkoComponent<MainActivity> { override fun createView(ui: AnkoContext<MainActivity>) = with(ui) { coordinatorLayout { fitsSystemWindows = true lparams { width = matchParent height = matchParent } ToolbarUI().createView(ui).lparams { width = matchParent } recyclerView […]
我有这个最好的流动性: private val subject: BehaviorSubject<Int> = BehaviorSubject.create() Flowable.combineLatest( materialA, materialB, subject.toFlowable(LATEST), Function3 { ma, mb, index -> if(index == 0) … else if(index ==1) … else … } subject.onNext(99) 基本上,我想观察这两个材料的数据库变化,并结合他们向用户显示一些数据。 有时,我需要使用最新的输出,并做一个不同的组合(计算量大)。 这就是为什么我把这个index作为一个来源。 这是一个有效的方法,还是有更好的选择? PS。 我需要能够随时要求一个不同的组合(这是我没有使用Flowable.just()),我想避免保存在obs链之外的状态。
所以我有一个列表,可以填充我有一个微调项目。 然后我有一个文本框键入文档名称。 这两个都在工作 我需要的是我的代码自动检测我添加到列表中的项目数。 我不想手动添加它们。 我试过,但没有奏效 createListBtn.setOnClickListener { var item: String = "item" var i:Int = 1 var newItem: String = "item" + (Integer.parseInt(item.substring(1,item.length))+1) val list = HashMap<String, String>() list.put(newItem, kitList.toString()) db.collection("TestList").document(listNameTxt.text.toString()) .set(list as Map<String, Any>) .addOnSuccessListener { Log.d("TAG", "DocumentSnapshot successfully written!") } .addOnFailureListener { e -> Log.w("TAG1", "Error writing document") }
我有2个不同的片段,他们都将通过2个不同的活动使用。 在两个活动的布局中,都有一个框架布局用作碎片容器。 哪个是; 碎片:MapFragment,ListFragment 活动:HomeActivity,SearchActivity。 让我们谈谈HomeActivity; HomeActivity会将ListFragment和MapFragment注入到onCreate活动中,并将注入的片段推送到它的布局(首先是列表片段),之后活动将调用注入片段的呈现器方法在列表或地图上显示服务结果。 代码; 片段一面; @CustomScope @Component(dependencies = NetComponent.class, modules = {ChallengeListFrgModule.class, ChallengeRepositoryModule.class}) public interface ChallengeListFrgComponent{ void inject(ChallengeListFragment fragment); } _ @Module class ChallengeListFrgModule(private val mView: ChallengeListFrgContract.View) { @Provides internal fun providesChallengeListFrgContractView(): ChallengeListFrgContract.View { return mView } } ListFrgPresenter: public class ChallengeListFrgPresenter implements ChallengeListFrgContract.Presenter { //region Variables ChallengeListFrgContract.View mView; ChallengeRepository challengeRepository; […]
我可以用下面的代码发送整数值(1234)到thinkspeak频道字段1: val httpclient = OkHttpClient() // create an HTTP client val request = Request.Builder().url("https://api.thingspeak.com/update?api_key=YGEQ_MYKEY=1234").build() httpclient.newCall(request).execute() 但是我不能发送文本值(SAJAN)。 我如何发送文字值thinkspeak? 我已经尝试了下面的代码,但它不工作。 val httpclient = OkHttpClient() // create an HTTP client val request = Request.Builder().url("https://api.thingspeak.com/update?api_key=YGEQ_MYKEY=SAJAN").build() httpclient.newCall(request).execute()
我有我用add()方法添加的片段A,B,C。 当我到达片段C时,有时候我想回到片段A并删除B和C. 我的方法是: val backStateName = FragmentA::class.java.name activity.fragmentManager.popBackStackImmediate(backStateName, FragmentManager.POP_BACK_STACK_INCLUSIVE) 我也有一个specialTag添加到我的片段A,所以我做了一个检查,以确保在我尝试我的方法之前,片段A仍然在后面堆栈。 val fragmentToGoTo = activity.fragmentManager.findFragmentByTag(specialTag) 它不会返回null – 这意味着片段仍然可用于后退堆栈。 popBackStackImmediate返回false。 为什么?
我把Intent Parcelable对象放到下一个Activity : val intent = Intent(mContext, ShowTestActivity::class.java) intent.putExtra("test", test) Log.d("myLog", "${intent.getParcelableExtra<Test>("test")}") // No problem mContext.startActivity(intent) 并在下一个Activity获取此对象: if (!intent.hasExtra("test")) throw Exception("Intent doesn't has 'test' extra") val test: Test = intent.getParcelableExtra("test") 这里是抛出异常: public open class QBase(): Parcelable { … protected constructor(parcel: Parcel?) : this() { parcel?.let { question = parcel.readString() // parcel.readString() must not be null […]
我尝试autowire SessionFactory,但得到这个错误: APPLICATION FAILED TO START *************************** Description: Field bookRepository in com.test.app.BookService required a bean named 'entityManagerFactory' that could not be found. 在这里我自动装配SessionFactory: @Service class TestClass{ @Autowired lateinit var sessionFactory: SessionFactory …… } 这是我的配置类: @Configuration class SpringConfig { @Bean fun sessionFactory(emf: EntityManagerFactory): HibernateJpaSessionFactoryBean { val fact = HibernateJpaSessionFactoryBean() fact.entityManagerFactory = emf return fact } } […]
我运行了智能代码检查,它给了我一个“不必要的模块依赖”。 我“固定”,但确实是一个误报。 所以我点击“修复它”,它从源文件夹中删除了我的测试文件夹的依赖关系,但是现在我所有的测试类都给了我“未解决的参考”错误。 我如何恢复它? 或者,也许,我如何再次添加依赖项? 这是一个更好地理解这个问题的形象
你好我是使用TornadoFX的新手,我想知道MVP结构的最佳设计是使用TornadoFX吗? 在MVP看来: – >会将所有事件委托给演示者中的某个功能,例如按钮点击 – >不与模型交互 以下是一些粗糙的原型想法: abstract class AbstractPresenter<View : tornadofx.View> : Controller() { var view: View by Delegates.notNull() fun attachView(view: View) { this.view = view; } } 我创建一个自己附加到AbstractView的演示者: abstract class AbstractView<out Presenter : AbstractPresenter<*>> : View() { abstract val presenter: Presenter } 现在在一个例子中使用它: class SampleTestView: AbstractView<SampleTestPresenter>() { override val presenter: SampleTestPresenter by inject() […]