Android startActivityForResult()

Android startActivityForResult(),android,android-intent,Android,Android Intent,我刚开始学习android编程,但在启动Result活动时遇到了问题(使用onActivityResult(),setResult() 首先,有三个活动-主活动、寄存器、子活动(但我的问题是关于两个活动-主活动、寄存器)。我将它们全部注册到“AndroidManifest.xml”,如下所示: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/ap

我刚开始学习android编程,但在启动Result活动时遇到了问题(使用onActivityResult(),setResult()

首先,有三个活动-主活动、寄存器、子活动(但我的问题是关于两个活动-主活动、寄存器)。我将它们全部注册到“AndroidManifest.xml”,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.wakwakwak.iwak.myapp" >
    <uses-permission android:name="android.permission.VIBRATE"/>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".Main"
            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=".SubActivity"
            android:label="Here is SubWorld!">

        </activity>
        <activity android:name=".Register"
            android:label="Register">

        </activity>
    </application>

</manifest>
(Person是一个包含成员“id”和“pw”的类。Person类似乎没有问题)

注册活动本身似乎工作得很好-当每个密码都不同时,它会显示错误,但当两个密码都相同时(当传递到主活动时),就会出现错误:“Myapp已停止”我真的不知道问题出在哪里!!请告诉我出了什么问题:(

当两者相同时(传递到主活动时),错误 发生:“Myapp已停止”

调用
onActivityResult
中的
add
方法时,可能会得到
NPE
异常
users
数组列表为
null
。在
onCreate
方法中添加以下行:

users=new ArrayList<Person>();
users=newarraylist();

个人类是否可包裹?因为您无法将非可包裹自定义类对象传递给intent

请检查logcat的错误,以便我们能更好地帮助您

package com.wakwakwak.iwak.myapp;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class Register extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);
    }

    public void onClick(View view) {
        EditText editId = (EditText)findViewById(R.id.edit_id);
        EditText editPw = (EditText)findViewById(R.id.edit_pw);
        EditText editPwAgain = (EditText)findViewById(R.id.edit_pwagain);
        switch(view.getId()){
            case R.id.btn_register:
                if(!editPw.getText().toString().equals(editPwAgain.getText().toString())){
                    editPw.setText("");
                    editPwAgain.setText("");
                    Toast.makeText(this,"Passwords are not equal each other",Toast.LENGTH_SHORT).show();
                }
                else{
                    Person person = new Person(editId.getText().toString(),editPw.getText().toString());
                    Intent intent2 = new Intent();
                    intent2.putExtra("person",person);
                    setResult(0,intent2);
                    finish();
                }
                break;
        }
    }
}
users=new ArrayList<Person>();