Android startActivityForResult()
我刚开始学习android编程,但在启动Result活动时遇到了问题(使用onActivityResult(),setResult() 首先,有三个活动-主活动、寄存器、子活动(但我的问题是关于两个活动-主活动、寄存器)。我将它们全部注册到“AndroidManifest.xml”,如下所示: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
<?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>();