这个问题在这里已有答案:
我想将所有数据5(EditText)从活动1移动到2
公共类MainActivity扩展Activity
private EditText fName_ET;
private EditText lName_ET;
private EditText phoneNum_ET;
private EditText eMail_ET;
private EditText deviceModel_ET;
private EditText nameDevice_ET;
private Button nextPage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
fName_ET = (EditText)findViewById(R.id.fName_ET);
lName_ET = (EditText)findViewById(R.id.lName_ET);
phoneNum_ET = (EditText)findViewById(R.id.phone_ET);
eMail_ET = (EditText)findViewById(R.id.mail_ET);
nameDevice_ET = (EditText)findViewById(R.id.name_device);
deviceModel_ET = (EditText)findViewById(R.id.model_device);
nextPage = (Button)findViewById(R.id.next_btn);
nextPage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, Main2Activity.class);
String fName = fName_ET.getText().toString().trim();
String lName = lName_ET.getText().toString().trim();
String email = eMail_ET.getText().toString().trim();
String phone = phoneNum_ET.getText().toString().trim();
String nameDevice = nameDevice_ET.getText().toString().trim();
String modelDevice =deviceModel_ET.getText().toString().trim();
intent.putExtra("modelDevice",modelDevice);
intent.putExtra("fName", fName);
intent.putExtra("lName", lName);
intent.putExtra("phone", phone);
intent.putExtra("email", email);
intent.putExtra("nameDevice", nameDevice);
startActivity(intent);
}
});
公共类Main2Activity扩展Activity
{
package com.example.eranp.cp;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import java.sql.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class Main2Activity extends Activity {
private EditText pro_device_det;
private Button saveDataBase;
private DatabaseReference databaseCustomer, databaseDevice, databaseProblem;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main3);
databaseCustomer = FirebaseDatabase.getInstance().getReference("customers");
databaseDevice = FirebaseDatabase.getInstance().getReference("device");
databaseProblem = FirebaseDatabase.getInstance().getReference("problem");
saveDataBase = (Button) findViewById(R.id.save_btn);
pro_device_det = (EditText) findViewById(R.id.pro_device_det);
Intent intent = getIntent();
final String fName = intent.getStringExtra("fName");
final String lName = intent.getStringExtra("lName");
final String phone = intent.getStringExtra("phone");
final String email = intent.getStringExtra("email");
final String modelDevice = intent.getStringExtra("modelDevice");
final String nameDevice = intent.getStringExtra("nameDevice");
saveDataBase.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String proDeviceDet = pro_device_det.getText().toString().trim();
String shortProDeviceDet = string3Words(proDeviceDet);
DateFormat df = new SimpleDateFormat("d MMM yyyy, HH:mm");
String date = df.format(Calendar.getInstance().getTime());
if (!TextUtils.isEmpty(proDeviceDet)) {
String id = databaseCustomer.push().getKey();
Customer customer = new Customer(id, fName, lName, email, phone);
databaseCustomer.child(id).setValue(customer);
Device device = new Device(id, nameDevice, modelDevice);
databaseDevice.child(id).setValue(device);
Problem problem = new Problem(id, date, proDeviceDet, 0, shortProDeviceDet);
// Toast.makeText(this , "Customer added", Toast.LENGTH_LONG).show();
} else {
// Toast.makeText(this, "Please write on an empty cell", Toast.LENGTH_LONG).show();
}
}
});
}
private String string3Words(String s) {
String[] splitted = s.split("\\s+");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < splitted.length; i++) {
sb.append(splitted[i]);
if (i == 3) {
break;
}
}
String newS = sb.toString();
return newS;
}
}
我按下时记录:
向下VM 03-09 14:47:16.903 3476-3476 / com.example.eranp.clientpage E / AndroidRuntime:致命异常:主要过程:com.example.eranp.clientpage,PID:3476了java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.eranp.clientpage / com.example.eranp.clientpage.Main2Activity}:java.lang.NullPointerException:尝试调用虚方法'void android.widget.Button.setOnClickListener(android.view.View) $ OnClickListener)'在android.app.ActivityThread.perleLaunchActivity(ActivityThread.java:2924)上的空对象引用,位于android.app.ActivityThread.-wrap14(ActivityThread)的android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2985)的.java)在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1635)在android.os.Handler.dispatchMessage(Handler.java:102)在android.os.Looper.loop(Looper.java:154)在android.app.ActivityThread.main(ActivityThread.java:6692)at com.android.internal.os.Zygo的java.lang.reflect.Method.invoke(Native Method) teInit $ MethodAndArgsCaller.run(ZygoteInit.java:1468)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)引起:java.lang.NullPointerException:尝试调用虚方法'void android.widget .Button.setOnClickListener(android.view.View $ OnClickListener)'在android.app.Activity.performCreate(Activity.java)的com.example.eranp.clientpage.Main2Activity.onCreate(Main2Activity.java:50)上的空对象引用上:6912)在android.app.Anstrumentation.callActivityOnCreate(Instrumentation.java:1126)android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2877)android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2985)at android Android.O.运行时android.os.Handler.dispatchMessage(Handler.java:102)上android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1635)的.app.ActivityThread.-wrap14(ActivityThread.java) .loop(Looper.java:154)在android.app.ActivityThread.main(ActivityThread.java:6692)java.lang.reflect.Method.invoke(本地方法)com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1468)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)
为什么当我按下应用程序崩溃的下一个按钮?谢谢你的帮忙!
2 回答
您正尝试在Main2Activity中的按钮上设置单击侦听器 . 很可能按钮不能从第二个活动的布局中膨胀,因为它不存在 .
上在com.example.eranp.clientpage.Main2Activity.onCreate(Main2Activity.java:50)空对象引用> android.widget.Button.setOnClickListener(android.view.View $ OnClickListener)”在
根据您的错误日志,您会因此而收到错误
检查天气按钮ID是否正确,是否与活动的布局相同 .