-2

我是 Android 应用程序开发的新手。我正在开发一个有两个活动的应用程序。用户可以通过输入一些文本并单击按钮MainActivity来跳转。Activity2幸运的是,我已经做到了。但我期待如果用户没有输入任何文本,它会显示“你没有输入任何内容”的祝酒词,并且在这种情况下肯定不会发生按钮单击事件。使用 if-else 实现此功能的方法是什么?

这是我的MainActivity.kt


import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

import android.widget.Button
import android.widget.EditText


class MainActivity : AppCompatActivity() {

    lateinit var nameInput : EditText
    lateinit var sorryButton : Button

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



        nameInput = findViewById(R.id.nameInput)
        sorryButton = findViewById(R.id.btn_sorry)



        sorryButton.setOnClickListener {
            

            val intent = Intent(this, MainActivity2::class.java)
            val name = nameInput.editableText.toString()
            intent.putExtra("name",name)
            startActivity(intent)





        }
    }



}

如果知道如何实现这一点,请提供帮助。
谢谢。

4

5 回答 5

0

假设如果你想设置文本的最小长度 4 然后使用 -

sorryButton.setOnClickListener {

        val name = nameInput.editableText.toString()

        if (name.length < 4 ) {
            nameInput.setError("Name less than 4 letters not allow")
        } else {
            val intent = Intent(this, MainActivity2::class.java)
            intent.putExtra("name", name)
            startActivity(intent)

        }


    }

假设如果您不允许为空,则使用 -

sorryButton.setOnClickListener {

        val name = nameInput.editableText.toString()

        if (name.isEmpty()) {
            nameInput.setError("Username required")
        } else {
            val intent = Intent(this, MainActivity2::class.java)
            intent.putExtra("name", name)
            startActivity(intent)

        }


    }

如果您不允许文本/名称之间有空格,那么 -

sorryButton.setOnClickListener {

        val name = nameInput.editableText.toString()

        if (name.contains(" ")) {
            nameInput.setError("Space not allow here")
        } else {
            val intent = Intent(this, MainActivity2::class.java)
            intent.putExtra("name", name)
            startActivity(intent)

        }


    }

如果你想结合所有这些 -

sorryButton.setOnClickListener {

        val name = nameInput.editableText.toString()

        if (name.contains(" ") || name.length < 4 || name.isEmpty()) {
            nameInput.setError("Username required")
        } else {
            val intent = Intent(this, MainActivity2::class.java)
            intent.putExtra("name", name)
            startActivity(intent)

        }


    }

在此处输入图像描述

于 2021-07-08T07:51:06.283 回答
0

因此,在单击按钮时,您将输入并验证它。如果它不为空,则必须移动到其他屏幕。

sorryButton.setOnClickListener {
    val name: String = nameInput.text?.toString()
    if (name.isEmpty()) {
        Toast.makeText(applicationContext, "You have not entered anything", Toast.LENGTH_SHORT).show()
    } else {
        val intent = Intent(this, MainActivity2::class.java)
        intent.putExtra("name",name)
        startActivity(intent)
    }
}

这将按预期工作。

如果,用户输入“text1,text2,text3”然后 Activity2 将打开,如果“输入任何其他文本”然后 Activity3 将打开?

在这种情况下,只需在 中添加另一个else if条件OnClickListener

sorryButton.setOnClickListener {
    val name: String = nameInput.text?.toString()
    if (name.isEmpty()) {
        Toast.makeText(applicationContext, "You have not entered anything", Toast.LENGTH_SHORT).show()
    } else if(name == "text1, text2, text3"){
        val intent = Intent(this, MainActivity2::class.java)
        intent.putExtra("name",name)
        startActivity(intent)
    }else {
        val intent = Intent(this, MainActivity3::class.java)
        intent.putExtra("name",name)
        startActivity(intent)
    }

}
于 2021-07-08T04:12:32.840 回答
0

java中使用这个鳕鱼

  Button sorryButton;
  EditText nameInput;
  sorryButton = findViewById(R.id.sorryButtonId);
  nameInput = findViewById(R.id.nameInputId);
  sorryButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String name = nameInput.getText().toString();
            if (TextUtils.isEmpty(nameInput.toString())){
                Toast.makeText(MainActivity.this, "You have not entered anything", Toast.LENGTH_SHORT).show();
                return;
            }else {
                startActivity(new Intent(this , Activity2.class).putExtra("NAME" , name));
            }
        }
    });
于 2021-07-08T04:19:55.560 回答
0

在点击监听器中放置一个 if 语句。检查名称是否为空作为条件。

sorryButton.setOnClickListener {
    val name = nameInput.editableText.toString()
    if (name.isEmpty()) {
        // show toast
    } else {
        val intent = Intent(this, MainActivity2::class.java)
        intent.putExtra("name",name)
        startActivity(intent)
    }
}
于 2021-07-08T03:46:22.253 回答
0
 sorryButton.setOnClickListener {
     
                if(nameInput.text?.isBlank() == true) Toast.makeText(this, "Please enter your name", Toast.LENGTH_SHORT).show()
                else{      
                val intent = Intent(this, MainActivity2::class.java)
                val name = nameInput.editableText.toString()
                intent.putExtra("name",name)
                startActivity(intent)
               }
    
    }

我希望这能解决您的疑问。

于 2021-07-08T03:50:05.607 回答