额外的意图

Additional Intents

在陈述我的问题之前,我只想说我对 Android Studio 和 Java 还很陌生。我一直在学习,并从错误中吸取教训。所以对我放轻松,我是新手 :P

所以我在 Android Studio 中开始了一个项目。在我的 Main Activity 上,我创建了两个按钮 - 'Sign up' 和 'Sign in'

现在我已经成功创建了我的 'Sign up' 按钮并打算转到新的 activity(第二个 activity)

但问题是我的 'Sign in' 按钮。为什么当我单击 'Sign in' 按钮时它没有响应并直接转到另一个新的 activity(第 3 个 activity),因为我已经创建了 onClickListener?

我必须单击 'Sign up' 按钮转到注册 activity 然后按 'back' 然后它允许我单击登录按钮转到登录 activity.

我真的希望这是有道理的。

如果有人就此回复我,我将不胜感激。这可能是一个非常简单的修复,但正如我所说,我是新手 耸肩

不过,现在我只是想办法解决一下

提前致谢!

(如果您想让我 post 相关代码,请告诉我)。

public class MainActivity extends ActionBarActivity {
private static Button Button_sbm;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    OnClickButtonListener();
}

public void OnClickButtonListener(){
    Button_sbm = (Button) findViewById(R.id.signupbut);
    Button_sbm.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent("com.teamsix.fezzy.gosheesh.Signupactivity");
                    startActivity(intent);


                    Button signinbut = (Button) findViewById(R.id.signinbut);
                    signinbut.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            Intent intent = new Intent ("com.teamsix.fezzy.gosheesh.SignIn");
                            startActivity(intent);

那是因为你只是在点击注册后链接了点击监听器来登录,在此之前,按钮没有点击监听器。

你的代码应该是这样的

public void OnClickButtonListener(){
Button_sbm = (Button) findViewById(R.id.signupbut);
Button_sbm.setOnClickListener(
        new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent("com.teamsix.fezzy.gosheesh.Signupactivity");
                startActivity(intent);
               }
            });
Button signinbut = (Button) findViewById(R.id.signinbut);
signinbut.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Intent intent = new Intent ("com.teamsix.fezzy.gosheesh.SignIn");
                        startActivity(intent);
                     }
});

我对 Android 编码也很陌生,但 运行 遇到了类似的问题,我的解决方法是这样做的:

public class MainActivity extends ActionBarActivity implements OnClickListener
{
    private Button Button_sbm, signinbut;
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button_sbm = (Button) findViewById(R.id.signupbut);
        signinbut = (Button) findViewById(R.id.signinbut);

        Button_sbm.setOnClickListener(this);
        signinbut.setOnClickListener(this);
    }

    @Override
    public void onClick(View v)
    {
        switch (v.getId())
        {
            case R.id.signupbut:
                Intent intent = new Intent("com.teamsix.fezzy.gosheesh.Signupactivity");
                startActivity(intent);
            break;
            case R.id.signinbut:
                Intent intent = new Intent("com.teamsix.fezzy.gosheesh.SignIn");
                startActivity(intent);
            break;
        }
    }
}

还发现它使 read/edit 以后的代码更容易。