我正在尝试在Kotlin文件的OnClickListener
按钮上设置Android
。与java文件不同,我可以在类级别声明button变量,然后在onCreate
方法中对其进行初始化,并在同时分配ClickListener:
Button inlineButton;
@Override
public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
inlineButton = findViewById(R.id.btn_inline);
inlineButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new NotificationToast(MainActivity.this, "Inline Button");
}
});
}
仅当我使用以下代码创建按钮的副本时,才能设置事件处理程序:
var inlineButton : Button? = null; override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) inlineButton = findViewById(R.id.btn_inline) val inlineButtonCopy = inlineButton; if (inlineButtonCopy != null) { inlineButtonCopy.setOnClickListener({ NotificationToast(this,inlineButtonCopy.text.toString()).Show(); }) } }
我想知道是否不可能仅在顶级创建Button的单个实例,在oncreate上初始化它,并设置事件处理程序。如果只能创建一个实例,则可以使用该事件来更改同一按钮的属性。是默认行为,还是我缺少某些内容。
高度赞赏。
我正在尝试在Kotlin文件中的Android按钮上设置OnClickListener。与java文件不同,我可以在类级别声明button变量并在onCreate方法中对其进行初始化,然后分配...
在Kotlin中,您无需描述按钮。您可以直接调用id并设置Listener。它比java容易。只是不要对您的ID感到困惑
尝试使用VAL而不是VAR,intellisense在谈论可变属性,这可能是一种解决方案,请让我知道。