Java Android按钮一次点击更改活动会导致应用程序在这些代码中崩溃
main活动 这是java的主要活动。此活动包含构造函数。 在“创建时”方法中,它无法正常工作:Java Android按钮一次点击更改活动会导致应用程序在这些代码中崩溃,java,android,xml,Java,Android,Xml,main活动 这是java的主要活动。此活动包含构造函数。 在“创建时”方法中,它无法正常工作: package com.example.add; 导入androidx.appcompat.app.appcompat活动; 导入android.os.Bundle; 导入android.view.view; 导入android.widget.Button; 导入android.widget.EditText; 导入android.widget.Toast; 公共类MainActivity扩展了Ap
package com.example.add;
导入androidx.appcompat.app.appcompat活动;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.Toast;
公共类MainActivity扩展了AppCompatActivity{
私有编辑文本编辑文本1、编辑文本2;
私人按钮按钮;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addListenerOnButton();
}
public void addListenerOnButton(){
edittext1=(EditText)findViewById(R.id.edittext1);
edittext2=(EditText)findViewById(R.id.edittext2);
buttonSum=(按钮)findViewById(R.id.Button);
buttonSum.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
字符串名称=edittext1.getText().toString();
字符串年龄=edittext2.getText().toString();
Toast.makeText(getApplicationContext(),(name),Toast.LENGTH_LONG.show();
Toast.makeText(getApplicationContext(),(age),Toast.LENGTH\u LONG.show();
//if(name!=null&&age!=null){
//int age=Integer.parseInt(edittext2.getText().toString());
//字符串a=String.valueOf(名称);
//intb=Integer.parseInt(String.valueOf(Integer.parseInt(age)));
//DBConnect connect=新的DBConnect();
新数据库连接(姓名、年龄);
//连接。插入(姓名、年龄);
//connect.getData();//}else
//{System.out.println(“错误:找不到数据”);}
}
});
}
}
DBConnect.java
package com.example.add;
导入android.widget.Toast;
导入androidx.appcompat.app.appcompat活动;
导入java.sql.*;
公共类DBConnect扩展AppCompatActivity实现插入{
//私人连接;
私人连接;
非公开声明st;
私人结果集;
公共数据库连接(字符串名称、字符串期限){
试一试{
Class.forName(“com.mysql.jdbc.Driver”);
con=DriverManager.getConnection(“jdbc:mysql://localhost:3306/test“,”根“,”);
st=con.createStatement();
}捕获(例外情况除外){
System.out.println(“错误:+ex”);
}
//}
//公共空白插入(字符串x、字符串y){
试一试{
//串龄=y;
//字符串名称=x;
String insert=“insert into person set age='”+age+”,name='“+name+”;”;
st=con.createStatement();
st.executeUpdate(插入);
}捕获(SQLE异常){
系统错误println(e);
}
}
私有void getData(){
试一试{
String query=“select*from person”;
rs=st.executeQuery(查询);
System.out.println(“来自数据库的记录”);
while(rs.next()){
String Sr=rs.getString(“id”);
字符串名称=rs.getString(“名称”);
字符串年龄=rs.getString(“年龄”);
//System.out.println(“Srno.:”+Sr++“Name:”+Name++“Age:”+Age”);
//字符串和=;
Toast.makeText(getApplicationContext(),String.valueOf(Sr),Toast.LENGTH\u LONG.show();
}
}捕获(例外情况除外){
系统输出打印项次(ex);
}
}
}
我希望这对您有用 按钮点击监听器写像这样
buttonSum.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = edittext1.getText().toString();
String age = edittext2.getText().toString();
if (name != null && age != null) {
new DBConnect(name, Integer.parseInt(age));
}
}
});
和DBConnect()
这样的方法
public DBConnect(String name,int age) {
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
st = con.createStatement();
String insert = "insert into person set age='" + age + "',name='" + name + "';";
st = con.createStatement();
st.executeUpdate(insert);
} catch (Exception ex) {
System.out.println("Error: " + ex);
}
}
确保已连接到插入记录。请发布堆栈跟踪。没有堆栈跟踪,代码不可读(需要格式化)
buttonSum.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = edittext1.getText().toString();
String age = edittext2.getText().toString();
if (name != null && age != null) {
new DBConnect(name, Integer.parseInt(age));
}
}
});
public DBConnect(String name,int age) {
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
st = con.createStatement();
String insert = "insert into person set age='" + age + "',name='" + name + "';";
st = con.createStatement();
st.executeUpdate(insert);
} catch (Exception ex) {
System.out.println("Error: " + ex);
}
}