【问题标题】:Implement if else in a Button while clicked单击时在按钮中实现 if else
【发布时间】:2021-09-18 13:10:47
【问题描述】:

我是 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)





        }
    }



}

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

【问题讨论】:

    标签: android kotlin if-statement android-button


    【解决方案1】:

    在点击监听器中放置一个 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)
        }
    }
    

    【讨论】:

    • 如果用户输入“text1, text2, text3”然后Activity2 将打开,如果“输入任何其他文本”然后Activity3 将打开?
    • 我认为您需要通读 Kotlin 语言文档。否则,人们将无休止地回答您的具体问题,而您却没有真正了解基本语法和逻辑是如何工作的。
    【解决方案2】:
     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)
                   }
        
        }
    

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

    【讨论】:

    • 如果用户输入 "text1, text2, text3" 然后 Activity2 会打开,如果 "Entered any other text" 然后 Activity3 会打开?
    • 你的主要目的是获取用户输入的文本,对吧?
    【解决方案3】:

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

    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 会打开?

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

    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)
        }
    
    }
    

    【讨论】:

      【解决方案4】:

      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));
                  }
              }
          });
      

      【讨论】:

        【解决方案5】:

        假设如果你想设置文本的最小长度 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)
        
                }
        
        
            }
        

        【讨论】:

          猜你喜欢
          • 2022-01-25
          • 2014-12-07
          • 2018-09-04
          • 2011-04-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-05-28
          • 1970-01-01
          相关资源
          最近更新 更多