2012-01-26 135 views
0

我有一个简单的EditText,然后点击按钮去启动另一项活动。下一步按钮需要点击两次才开始活动

  • 第一次单击该按钮时,它将清除EditText而不是启动下一个活动。
  • 第二次单击按钮时,它会启动下一个活动。

我对电子邮件地址没有做任何处理,因为这只是一个模拟应用程序,因此我不需要将它传递给下一个活动。

我无法弄清楚如何让按钮在第一次按下时启动下一个活动。这里是我的代码:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main11); 

    EditText inputEmail = (EditText) findViewById(R.id.editText1); 

    Button next = (Button) findViewById(R.id.button1); 
    next.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
     String email = inputEmail.getText().toString(); 
     if (email.equals("")) { 
      Toast.makeText(getApplicationContext(), 
       "Please Enter Your Email", Toast.LENGTH_LONG) 
        .show(); 
     } else { 
      Toast.makeText(getApplicationContext(), "Email Saved", 
      Toast.LENGTH_LONG).show(); 
      Intent myIntent = new Intent(Backup3.this, Backup4.class); 
      startActivityForResult(myIntent, 0); 
     }; 

     } 
    }); 

} 
+0

以下属性如果你不希望的结果,当一个活动完成后,你可以用'startActivity'而非' startActivityForResult' –

+0

为什么使用startActivityForResult()?当电子邮件不为空时,还会显示“电子邮件保存”Toast? – LuxuryMode

+2

Shoul'nt EditText inputEmail =(EditText)findViewById(R.id.editText1); be “final”EditText inputEmail =(EditText)findViewById(R.id.editText1); 你的代码是如何编译的? –

回答

0

我运行这个相同的代码作为你的,我没有相关的问题。这一切都很好。

public class Backup3 extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     final EditText inputEmail = (EditText) findViewById(R.id.editText1); 
     Button next = (Button) findViewById(R.id.button1); 
     next.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       String email = inputEmail.getText().toString(); 
       if (email.trim().equals("")) { 
        Toast.makeText(Backup3.this, "Please Enter Your Email", Toast.LENGTH_LONG).show(); 
       } else { 
        Toast.makeText(Backup3.this, "Email Saved", Toast.LENGTH_LONG).show(); 
        startActivity(new Intent(Backup3.this, Backup4.class)); 
       }; 
      } 
     }); 
    } 
} 
+1

感谢您的帮助。我确实将startActivityForResult更改为startActivity。仔细查看我的文件后,我意识到错误在我的布局文件中,而不是我的活动代码。现在它似乎工作正常。 – user1172306

+0

您可以评价答复或将其标记为已接受吗?谢谢! –

1

检查您的布局文件,并尝试删除按钮

android:focusable="true" 
android:focusableInTouchMode="true" 
+0

谢谢 - 不知道这些属性是如何进入那里的。 – bsautner

相关问题