package com.example.myapplication
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
inputListner(MainActivity())
}
}
fun inputListner(activity: MainActivity){
// finding the edit text
val editText = activity.findViewById<EditText>(R.id.link)
val showButton = activity.findViewById<Button>(R.id.generate)
// Setting On Click Listener
showButton.setOnClickListener {
// Getting the user input
val text = editText.text
// Showing the user input
Toast.makeText(activity, text, Toast.LENGTH_SHORT).show()
}
}
我在试着把我的代码分成几部分. 我想做的第一件事是创建一个函数来处理我的按钮和编辑文本.据我所知,我需要以某种方式将类的参数传递给函数.
实际上这段代码可以编译,但在我的手机上它崩溃了.
比起我做的另一件事:
package com.example.myapplication
import android.content.Context
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val editText = findViewById<EditText>(R.id.link)
val showButton = findViewById<Button>(R.id.generate)
val MAContext: Context = this@MainActivity
inputListner(showButton, editText, MAContext )
}
}
fun inputListner(showButton: Button, editText: EditText, context: Context){
// finding the edit text
// Setting On Click Listener
showButton.setOnClickListener {
// Getting the user input
val text = editText.text
// Showing the user input
Toast.makeText(Context, text, Toast.LENGTH_SHORT).show()
}
}
这里我需要传递一个上下文,但我收到了这个错误:
Classifier 'Context' does not have a companion object, and thus must be initialized here个
我实际上有点困惑,因为这是我第一次编写应用程序并使用Kotlin.
有必要这样做吗?这是在应用程序中划分任务的适当方式吗?
你会建议我将来如何组织我的代码吗?
谢谢!