我在 Kotlin 中有两个布局,每个布局都有一个按钮,我只想在两者之间切换。所以我在两者中都添加了一个OnClickListener
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button_foward.setOnClickListener(View.OnClickListener {
setContentView(R.layout.second)
button_back.setOnClickListener(View.OnClickListener {
setContentView(R.layout.activity_main)
})
})
好吧,它实际上正在工作。我可以转到第二个布局并切换回第一个布局,但我无法再次打开第二个布局!
我认为在更改回主视图后必须重新定义监听器,因此我创建了两个单独的函数来设置视图。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
this@MainActivity.createMainScreen()
})
}
fun createMainScreen(){
setContentView(R.layout.activity_main)
button_foward.setOnClickListener(View.OnClickListener {
this@MainActivity.createSecondScreen()
})
}
fun createSecondScreen(){
setContentView(R.layout.second)
button_back.setOnClickListener(View.OnClickListener {
this@MainActivity.createMainScreen()
})
}
当我试图在Java中解决同样的问题时,这种方法是有效的,但是在Kotlin中,我仍然只能使用每个按钮一次。
我该如何解决这个问题?在重新定义按钮之前,我可以(必须)重新设置按钮吗?
或者可能有替代的setContentView的使用?
谢谢你的帮助!
可以
我想,直接分配到按钮的id就像
button_foward.setOnClickListener(View.OnClickListener {
this@MainActivity.createSecondScreen() })
应该会导致相同的结果
this.findViewById<Button>(R.id.button_foward).setOnClickListener(View.OnClickListener {
this@MainActivity.createSecondScreen()})
我在某个教程的某个地方看到了第一个代码示例,并认为这将是常见的静态编程语言方法。甚至Android Studio也建议我这样做,但在这种情况下,似乎只有第二种方法符合我的要求。
好吧,问题解决了:D谢谢!
我怀疑button_back设置不正确。
一个更简洁的方法可能是拥有一个包含两个备选方案的布局,然后在单击处理程序中设置备选方案的可见性。
我真的很喜欢 Anko 而不是 XML 来指定布局,因为它使这些行为更具可读性和独立性。
我想在我的应用程序中应用不同的主题。我想更改导航栏和浮动操作按钮的颜色。 现在我可以更改导航栏的颜色,但浮动操作按钮的颜色没有变化。当主题更改时,如何动态更改工厂的颜色? 风格: 绝妙的: 晶圆厂选择器: 谢谢你...
我错过了什么? 为了便于阅读,这里提供了一个要点,并附带了一个测试用例:https://Gist.github.com/teyc/5668517
对于我的应用程序,我需要HTML布局来记录事件。时间中的时间列以毫秒为单位出现,但我需要它的格式是dd-mm-yyyy:hh:mm:ss.sssz。我该怎么做?因为log4j2的HTML布局不支持pattern属性。所以我不能为时间设定新的模式。
我在一个HTML页面上有2个按钮组。每组3到4个按钮(使用引导程序的按钮)。我想使用Javascript在没有onclick的情况下更改点击时的颜色按钮。 用户将单击组1中的任何按钮(单击“将颜色改为绿色”时),然后单击组2中的按钮,而不取消选择组1中的按钮。 null null
问题内容: 我想在我的 底栏布局的中间添加Facebook Messenger,例如超大按钮,但困惑如何添加。 我正在使用ahbottomnavigation库来制作我的底栏。 问题答案: 我只是试图使其简单而不是专业类型。看这里: BottomSheetLayout文件- : ActivityLayout - Output: 根据您的想法改变价值和设计。 示例仅是一个演示,并不包含OP要求的确切
如何更改所有按钮的文本颜色? 我知道我可以像下面这样设置背景色: