Java 当我按下提交按钮进入第二个活动时,Android Studio应用程序崩溃
首先,我对Android编程非常陌生,我正在尝试开发一个显示消息的简单应用程序,当你按下消息下方的按钮时,它会将你发送到第二个活动,这是一个表单。该应用程序没有链接到任何数据库,我只是尝试在应用程序中开发一个验证算法,因此EditText中写入的数据是正确的。像名字只有字母等。我创建了两个活动,按下按钮后从第一个跳到第二个是有效的,但那是在我添加验证算法之前。现在,实现了这一点,每当我按下“开始!”按钮(第一个活动提交一个),应用程序就会崩溃 清单:Java 当我按下提交按钮进入第二个活动时,Android Studio应用程序崩溃,java,android,Java,Android,首先,我对Android编程非常陌生,我正在尝试开发一个显示消息的简单应用程序,当你按下消息下方的按钮时,它会将你发送到第二个活动,这是一个表单。该应用程序没有链接到任何数据库,我只是尝试在应用程序中开发一个验证算法,因此EditText中写入的数据是正确的。像名字只有字母等。我创建了两个活动,按下按钮后从第一个跳到第二个是有效的,但那是在我添加验证算法之前。现在,实现了这一点,每当我按下“开始!”按钮(第一个活动提交一个),应用程序就会崩溃 清单: <?xml version="1.0"
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.myapplication">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:ignore="GoogleAppIndexingWarning">
<activity
android:name=".Inregistrare"
android:exported="true"
android:theme="@style/AppTheme1" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
package com.example.myapplication;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button submitButton = findViewById(R.id.submitButton);
submitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Inregistrare();
}
});
}
public void Inregistrare(){
Intent intent = new Intent(this,Inregistrare.class);
startActivity(intent);
}
}
package com.example.myapplication;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class Inregistrare extends AppCompatActivity {
EditText nume, prenume, email, telefon;
TextView rezultat;
Button submit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_inregistrare);
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{ final String Nume = nume.getText().toString();
final String Prenume=prenume.getText().toString();
final String Email=email.getText().toString();
final String Telefon=telefon.getText().toString();
if(Nume.length()==0)
{
nume.requestFocus();
nume.setError("Campul nu poate fi lasat liber");
}
else if(!Nume.matches("[a-zA-Z ]+"))
{
nume.requestFocus();
nume.setError("Campul poate fi completat doar cu litere");
}
else if(Prenume.length()==0)
{
prenume.requestFocus();
prenume.setError("Campul nu poate fi lasat liber");
}
else if(!Prenume.matches("[a-zA-Z ]+")) {
prenume.requestFocus();
prenume.setError("Campul poate fi completat doar cu litere");
}
else if(Email.length()==0)
{
email.requestFocus();
email.setError("Campul nu poate fi lasat liber");
}
else if(!Email.matches("^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,6}$"))
{
email.requestFocus();
email.setError("Campul poate fi completat doar cu litere");
}
else if(Telefon.length()==0 || Telefon.length()<10)
{
telefon.requestFocus();
telefon.setError("Campul nu poate fi lasat liber si trebuie sa aiba minim 10 cifre");
}
else if(!Telefon.matches("[0-9]+"))
{
telefon.requestFocus();
telefon.setError("Campul poate fi completat doar cu cifre");
}
else{
rezultat = findViewById(R.id.rezultat);
String date="Date corecte!";
rezultat.setText(date);
}
}
})
;}
}
registrare.java中的第二个活动:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.myapplication">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:ignore="GoogleAppIndexingWarning">
<activity
android:name=".Inregistrare"
android:exported="true"
android:theme="@style/AppTheme1" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
package com.example.myapplication;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button submitButton = findViewById(R.id.submitButton);
submitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Inregistrare();
}
});
}
public void Inregistrare(){
Intent intent = new Intent(this,Inregistrare.class);
startActivity(intent);
}
}
package com.example.myapplication;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class Inregistrare extends AppCompatActivity {
EditText nume, prenume, email, telefon;
TextView rezultat;
Button submit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_inregistrare);
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{ final String Nume = nume.getText().toString();
final String Prenume=prenume.getText().toString();
final String Email=email.getText().toString();
final String Telefon=telefon.getText().toString();
if(Nume.length()==0)
{
nume.requestFocus();
nume.setError("Campul nu poate fi lasat liber");
}
else if(!Nume.matches("[a-zA-Z ]+"))
{
nume.requestFocus();
nume.setError("Campul poate fi completat doar cu litere");
}
else if(Prenume.length()==0)
{
prenume.requestFocus();
prenume.setError("Campul nu poate fi lasat liber");
}
else if(!Prenume.matches("[a-zA-Z ]+")) {
prenume.requestFocus();
prenume.setError("Campul poate fi completat doar cu litere");
}
else if(Email.length()==0)
{
email.requestFocus();
email.setError("Campul nu poate fi lasat liber");
}
else if(!Email.matches("^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,6}$"))
{
email.requestFocus();
email.setError("Campul poate fi completat doar cu litere");
}
else if(Telefon.length()==0 || Telefon.length()<10)
{
telefon.requestFocus();
telefon.setError("Campul nu poate fi lasat liber si trebuie sa aiba minim 10 cifre");
}
else if(!Telefon.matches("[0-9]+"))
{
telefon.requestFocus();
telefon.setError("Campul poate fi completat doar cu cifre");
}
else{
rezultat = findViewById(R.id.rezultat);
String date="Date corecte!";
rezultat.setText(date);
}
}
})
;}
}
package com.example.myapplication;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.TextView;
导入androidx.appcompat.app.appcompat活动;
Registrare中的公共类扩展了AppCompative活动{
编辑文本nume、prenume、电子邮件、电话;
TextView-rezultat;
按钮提交;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(注册表中的R.layout.activity_);
submit.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图)
{最终字符串Nume=Nume.getText().toString();
最后一个字符串Prenume=Prenume.getText().toString();
最终字符串Email=Email.getText().toString();
最终字符串Telefon=Telefon.getText().toString();
如果(Nume.length()==0)
{
requestFocus();
nume.setError(“自由之门”);
}
如果(!Nume.matches(“[a-zA-Z]+”),则为else
{
requestFocus();
nume.setError(“完整的数据集”);
}
else if(Prenume.length()=0)
{
prenume.requestFocus();
prenume.setError(“自由之乡”);
}
如果(!Prenume.matches(“[a-zA-Z]+”),则为else{
prenume.requestFocus();
prenume.setError(“完全符合要求”);
}
else if(Email.length()==0)
{
email.requestFocus();
email.setError(“Campul nu poate fi lasat liber”);
}
如果(!Email.matches(“^[A-Z0-9.\%+-]+@[A-Z0-9.-]+\\[A-Z]{2,6}$”)
{
email.requestFocus();
email.setError(“Campul poate fi completat doar cu litere”);
}
else if(Telefon.length()==0 | | Telefon.length())你能把崩溃日志放进去吗?你能提供崩溃日志吗你从来没有在第二个活动的onCreate
中初始化submit
。安迪的回答是正确的。谢谢安迪!这确实是个问题。现在的另一个问题是,当我完成字段时,在第二个活动中按下submit按钮后,应用程序首先在第1个活动中返回st活动,如果我重试,它将崩溃。由于字符限制,我无法添加崩溃日志