【问题标题】:How to navigate to another screen according to the text in editText?如何根据editText中的文字导航到另一个屏幕?
【发布时间】:2015-08-10 11:54:34
【问题描述】:

我希望我的应用程序是这样的,当 editText1 的值 (2) 没有括号时,按下按钮(带有 onClick="k")将导航到 MainActivity2。如果文本是 (3),则 MainActivity3 活动将打开。 我猜它会使用 If 函数。我怎样才能在我的应用程序中实现它? 对不起,愚蠢的问题,我只是一个新手。 ;-;

【问题讨论】:

  • (with onClick="k") -- 什么是 k?.. 按钮??.. 或键盘中的字符?..
  • @uday k 是我的按钮的 android:onClick。
  • 你能贴出任何代码吗?
  • String string = editText1.getText().toString();{ switch(string){ case "2": public void kden(View v) { // TODO 自动生成的方法存根 Intent i = new Intent(getApplicationContext(),MainActivity2.class);开始活动(一); } 休息; case "3": public void kden(View v) { // TODO 自动生成的方法存根 Intent i = new Intent(getApplicationContext(),MainActivity3.class);开始活动(一); @Mohit 这是我到目前为止的代码。它不工作。它显示错误。

标签: android android-intent onclicklistener


【解决方案1】:

我不确定您究竟为什么要这样做,但您可以这样做:

  1. EditText 属性设置为仅接受数字/数字

  2. onClick()的按钮,访问EditText中输入的数字

    editText1.getText().toString()

  3. 完成后,使用switch-case 语句启动 想要的活动。

【讨论】:

  • 您能详细说明一下吗?我是初学者,并不能真正理解这一点。 ._.我已经输入了这个: String string = editText1.getText().toString();{ switch(string){ case "2": public void k(View v) { // TODO 自动生成的方法存根 Intent i =新意图(getApplicationContext(),MainActivity2.class);开始活动(一); } 休息; case "3": public void k(View v) { // TODO 自动生成的方法存根 Intent i = new Intent(getApplicationContext(),MainActivity3.class);开始活动(一); }
【解决方案2】:

在 onClickListener 中,从 edittext 获取数据作为字符串并使用 switch-case 进行比较:

String string = editText1.getText().toString();
switch(string){

case "2":
//Start MainActivity2
break;

case "3":
//Start MainActivity3
break;
}

【讨论】:

    【解决方案3】:
    Try this:-
    
    String string = editText1.getText().toString();
    
           if(string.equals("2"))
           {
            Intent i = new  Intent(getApplicationContext(),MainActivity2.class);
            startActivity(i); 
           }
           else if(equals("3"))
           {
            Intent i = new   Intent(getApplicationContext(),MainActivity3.class); 
            startActivity(i);
           }
    

    【讨论】:

      【解决方案4】:

      删除switch-case里面的方法

          case "2": 
          public void kden(View v) { 
               // TODO Auto-generated method stub 
               Intent i = new Intent(getApplicationContext(),MainActivity2.class);
               startActivity(i); 
          } 
          break; 
      

      试试这个

       case "2":    
          Intent i = new Intent(getApplicationContext(),MainActivity2.class);
          startActivity(i); 
          break;
      

      【讨论】:

        【解决方案5】:

        首先,从EditText 中检索值。如果您只想要数字/数字,那么您可以在EditText 的属性中进行设置。现在,我们将其保留为接受 string 值。假设您的 EditText 的标识符是“editText1”:

        String targetActivity = editText1.getText().toString();
        

        其次,您需要使用条件语句来评估要启动哪个Activity。 @Sree 在他的回答中使用了switch-case,在这里我将使用if 语句,因为它们更容易阅读和理解。

        Intent i;
        
        if(targetActivity.equals("k")){
           i = new Intent(YourCurrentActivity.this, StartSomeActivity.class);
           startActivity(i);
        }
        
        else if(targetActivity.equals("3")){
            i = new Intent(YourCurrentActivity.this, StartAnotherActivity.class);
            startActivity(i);
        }
        

        显然,您可以更改要比较的值,我使用了 k3,因为这些是您在问题中给出的示例。还要确保将“YourCurrentActivity”替换为当前的 Activity 名称,并将“StartSomeActivity”和“StartAnotherActivity”替换为您要启动的期望 Activity 的名称。

        【讨论】:

        • 您是否正确输入了目标活动的名称?
        • 是的 @scott 目标活动是我想将屏幕移动到的活动,对吧?他们是两个。 MainActivity2 和 MainActivity3。
        • 而当前Activity是MainActivity?
        【解决方案6】:

        至少在评论中正确发布代码...

        你可以在按钮点击事件中使用它

        int key = Integer.parseInt(edit.getText().toString());
        Intent i;
        switch (key) {
          case 1:
              i = new Intent(MainActivity.this,MainActivity2.class); 
            break;
          case 2:
              i = new Intent(MainActivity.this,MainActivity3.class); 
            break;
        }
        startActivity(i);
        

        【讨论】:

          猜你喜欢
          • 2019-11-05
          • 2010-11-09
          • 1970-01-01
          • 2019-10-20
          • 1970-01-01
          • 1970-01-01
          • 2021-11-20
          • 1970-01-01
          • 2022-01-22
          相关资源
          最近更新 更多