我是新手kotlin,我尝试了几种使用以下代码的方法
val strAction = "Grid"
when(strAction){
strAction.contains("Grid")->println("position is 1")
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码strAction.contains("Grid")中,这一行向我显示了一个不兼容类型的错误
在使用 kotlin 时,我们如何标记单个项目被选中Recyclerview。当我选择一个项目并单击其他项目时,应取消选择之前选择的项目。这是我在 kotlin 中的适配器类:..
class ListAdapter(var context: Context, var list: ArrayList<ListModel>) : RecyclerView.Adapter<ListAdapter.MyViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): MyViewHolder {
val v = LayoutInflater.from(parent?.context).inflate(R.layout.list_item, parent, false)
return MyViewHolder(v)
}
override fun getItemCount(): Int {
return list.size
}
override fun onBindViewHolder(holder: MyViewHolder?, position: Int) {
holder?.bindItems(list[position])
}
class MyViewHolder(view: View) : RecyclerView.ViewHolder(view){
fun bindItems(items: ListModel) {
itemView.txt_que.text = items.que
itemView.txt_ans.text = items.ans
itemView.txt_sr_no.text = items.srNo
}
}`
Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的android项目中实现MVP。但是,当我使用实施MVP时,我会遇到困难viewPagerAdapter。为了实现MVP,我们曾经在Activityclass中创建fragment / view和presenter实例.Fragment / view和presenter都将使用合约相互通信。这样,我们将视图与演示者分离,并通过单元测试涵盖了所有业务逻辑。但以防万一,当我们有tablayout里面activity。我们已经在内部初始化了片段fragmentPagerAdapter。我不确定如何向其相应的演示者提供选项卡片段/视图引用。如果我在内部初始化演示者fragmentPagerAdapter会漂白SRP(单一责任主体)。如果我们在里面创建presenter实例Fragment这将生成耦合的代码,然后我们不需要联系就可以在片段和演示者之间建立通信。请提供体系结构解决方案,以便我可以使用视图分页器实现相同的MVP并遵守所有干净的代码主体。
作为参考,请在我的适配器代码下面找到我正在初始化Tab的片段:
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return getConfigurationsTabFragment();
case 1:
return UpdateTabFragment.newInstance();
case 2:
return ServiceTabFragment.newInstance();
default:
return null;
}
}
Run Code Online (Sandbox Code Playgroud)