应用程序关闭但不进入第二个屏幕

时间:2019-03-07 13:04:48

标签: android android-intent kotlin

这是主要活动

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        var userInput:EditText = findViewById(R.id.usr_input) as EditText
        var button:Button = findViewById(R.id.ent_btn) as Button

        button.setOnClickListener {
            var name = userInput.text

            val intent = Intent(this@MainActivity, screenTwo::class.java)
            intent.putExtra("name", name)

            startActivity(intent)
        }
    }
}

这是第二个屏幕

class screenTwo : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_screen_two)


        var userName:TextView = findViewById(R.id.user_name) as TextView
        var editText:EditText = findViewById(R.id.usr_text) as EditText
        var outText:TextView = findViewById(R.id.output) as TextView
        var showButton:Button = findViewById(R.id.btn_show) as Button
        var back:Button = findViewById(R.id.btn_back) as Button

        var name = intent.getStringExtra("name")
        userName.text = name

        showButton.setOnClickListener {
            var text:String = editText.text.toString()
            outText.text = text
        }

        back.setOnClickListener {
            var goback = Intent(this@screenTwo, MainActivity::class.java)

            startActivity(goback)
        }
    }
}

当我在主要活动中单击按钮(变量名)时,该应用程序将关闭。在第二个屏幕中是意图还是出了什么问题??

3 个答案:

答案 0 :(得分:0)

意图未在 SecondActivity

中定义

SecondActivity 中:通过getIntent()

取得意图
  

类screenTwo:AppCompatActivity(){

     

var name = getIntent()。getStringExtra(“ name”)

答案 1 :(得分:0)

此配置中最常见的错误是您忘记在“应用程序”节点内的AndroidManifest.xml中声明 screenTwo (您的 MainActivity 应该已经定义了那里):

 <activity 
     android:name=".screenTwo"
     android:theme="yourTheme"/>

如果不是,错误日志可能会帮助我们帮助您。

答案 2 :(得分:0)

对不起,这是我身边的一个小错误。 我没有将变量“名称”转换为“字符串”

var name = userInput.text.toString()    //correction

现在正在工作, 还是谢谢...