【问题标题】:Intent doesn't let me to go to HomePage意图不让我去主页
【发布时间】:2015-06-29 00:39:42
【问题描述】:

我在使用意图时遇到问题。正如您在下面看到的,我在登录下有一个意图,如果它是真的,它会将我带到“HomePageActivity”。问题是,它不让我去“HomePageActivity”。我很确定“HomePageActivity”是正确的。这个问题发生在所有活动的所有按钮上。没有什么能让我回到我的“HomePageActivity”。当我将“HomePageActivity”更改为其他一些活动时,这个问题很容易解决,它将转到该活动。但我想去“HomePageActivity”。谁能帮我回家?

这是我的“SignInActivity”的代码

public class SignInActivity extends ActionBarActivity {

protected EditText mUsernameSignIn;
protected EditText mPasswordSignin;
protected Button mSignInButton;
protected Button mSignUpButton;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sign_in);

    //Initialize
    mUsernameSignIn = (EditText) findViewById(R.id.usernameSignIn);
    mPasswordSignin = (EditText) findViewById(R.id.passwordSignIn);
    mSignInButton = (Button) findViewById(R.id.signinBtnSignIn);
    mSignUpButton = (Button) findViewById(R.id.signupBtnSignIn);

    //Listen to when the log in mSignIn Button is clicked
    //Sign in the user using Parse SDK
    mSignInButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //get the user inputs from edit text and covert to string
            String username = mUsernameSignIn.getText().toString().trim();
            String password = mPasswordSignin.getText().toString().trim();
            //Loging In

            ParseUser.logInInBackground(username, password, new LogInCallback() {
                @Override
                public void done(ParseUser parseUser, com.parse.ParseException e) {
                    if (e == null) {
                        //Success!
                        Toast.makeText(SignInActivity.this, "Welcome Back", Toast.LENGTH_LONG).show();

                        //bring user to HomePageActivity
                        Intent GoHome = new Intent(SignInActivity.this, HomePageActivity.class);
                        startActivity(GoHome);


                    } else {
                        //Sorry, Sign in Failed!

                        AlertDialog.Builder builder = new AlertDialog.Builder(SignInActivity.this);
                        builder.setMessage(e.getMessage());
                        builder.setTitle("Sorry, Sign In Failed");
                        builder.setPositiveButton("ok", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int which) {
                                //close the dialog
                                dialogInterface.dismiss();
                            }
                        });
                        AlertDialog dialog = builder.create();
                        dialog.show();
                    }

                }
            });
        }
    });

    //Go Sign Up
    mSignUpButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent GoSignUp = new Intent(SignInActivity.this, RegisterActivity.class);
            startActivity(GoSignUp);
        }

    });


}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_sign_in, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}

}

这是我的“HomePageActivity”的代码

public class HomePageActivity extends ActionBarActivity {


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home_page);
    // Enable Local Datastore.
    Parse.enableLocalDatastore(this);

    Parse.initialize(this, "EshgpTdW5ialGcLR7ing2x4jhkkgmbHBVeKwLh0J", "av66d87CSHlbRElTPPRx5jLWGefLYwfZ5Y4GHsZ6");
    ParseObject testObject = new ParseObject("TestObject");
    testObject.put("foo", "bar");
    testObject.saveInBackground();
}

//add pet button brings to add pet activity
public void addPetBtn(View v) {
    Intent intent = new Intent(HomePageActivity.this, AddPetActivity.class);
    startActivity(intent);
}

//register button brings to registration activity
public void registerBtn(View v) {
    Intent intent = new Intent(HomePageActivity.this, RegisterActivity.class);
    startActivity(intent);
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    switch (id) {
        case R.id.action_update:
            //take user to update activity
            break;

        case R.id.action_log_out:
            // take user to log out activity

            ParseUser.logOut();
            //take user back to Log in Screen
            Intent GoHome = new Intent(HomePageActivity.this,SignInActivity.class);
            startActivity(GoHome);
            break;


    }

    return super.onOptionsItemSelected(item);
}

}

这是 Android 清单

<?xml version="1.0" encoding="utf-8"?>

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".HomePageActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".AddPetActivity"
        android:label="@string/title_activity_add_pet" >
    </activity>
    <activity
        android:name=".RegisterActivity"
        android:label="@string/title_activity_register" >
    </activity>
    <activity
        android:name=".SignInActivity"
        android:label="@string/title_activity_sign_in" >
    </activity>
</application>

【问题讨论】:

    标签: android android-intent android-activity


    【解决方案1】:

    如果你想回到主活动,你可以调用finish()来关闭当前活动。 seems this may help you

    【讨论】:

      【解决方案2】:

      而不是通过

      启动 HomePageActivity
      Intent GoHome = new Intent(SignInActivity.this, HomePageActivity.class);
      startActivity(GoHome);
      

      您可以通过以下方式完成当前活动:

      finish();
      

      这是因为您的 HomePageActivity 正在启动另外两个 Activity,您可以在这些 Activity 中使用 finish() 方法返回 HomePageActivity。

      在这里阅读更多: Android: Go back to previous activity

      【讨论】:

      • 好的,但是为什么它不起作用?我可以让我的活动从注册>登录>注册>返回登录没有任何问题。但我无法访问我的 HomPageActivity?
      • 我正在关注一个教程,他们正在按照我的代码和他们的工作中显示的方式进行操作。
      • 由于这个问题,我无法从 SignInActivity 启动我的应用程序并在登录后转到 HomePageActivity。
      • 除非您提供调试日志,否则我无法对此发表任何评论。 (logcat 输出)
      • 这是 LogCat:java.lang.RuntimeException:无法启动活动 ComponentInfo{com.example.......HomePageActivity}:java.lang.IllegalStateException:必须调用 Parse#enableLocalDatastore(Context)Parse#initialize(Context) 之前我不明白。我已经在 homepageactivity 中初始化并启用了本地数据存储。有什么问题?
      猜你喜欢
      • 1970-01-01
      • 2020-07-04
      • 2010-09-18
      • 1970-01-01
      • 2011-02-21
      • 2012-05-21
      • 1970-01-01
      • 2011-07-31
      • 2011-07-28
      相关资源
      最近更新 更多