java - 从 EditText 获取字符串时,无法通过 setter 设置我的类的对象的参数但是当传递硬编码字符串时也可以这样做
问题描述
自定义类代码:
package com.example.accounts;
public class PartyModel {
private int parId;
private String parName;
private String parType;
private String parOwner;
private String parOwnerContact;
public PartyModel() {
}
public PartyModel(int parId, String parName, String parType, String parOwner, String parOwnerContact) {
this.parId = parId;
this.parName = parName;
this.parType = parType;
this.parOwner = parOwner;
this.parOwnerContact = parOwnerContact;
}
public int getParId() {
return parId;
}
public void setParId(int parId) {
this.parId = parId;
}
public String getParName() {
return parName;
}
public void setParName(String parName) {
this.parName = parName;
}
public String getParType() {
return parType;
}
public void setParType(String parType) {
this.parType = parType;
}
public String getParOwner() {
return parOwner;
}
public void setParOwner(String parOwner) {
this.parOwner = parOwner;
}
public String getParOwnerContact() {
return parOwnerContact;
}
public void setParOwnerContact(String parOwnerContact) {
this.parOwnerContact = parOwnerContact;
}
}
活动代码(将值传递给 PARTYMODEL 类的设置者) 在此活动中,我将 partyModel 对象添加到我的数据库中,当值取自硬编码字符串时,它运行良好,并且当值取自 editText未设置值:
package com.example.accounts;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class AddNewParty extends AppCompatActivity {
EditText etPartyName,etPartyType,etPartyOwner,etPartyOwnerContact;
Button btnCreate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_new_party);
etPartyName=findViewById(R.id.et2PartyName);
etPartyType=findViewById(R.id.et2PartyType);
etPartyOwner=findViewById(R.id.et2PartyOwner);
etPartyOwnerContact=findViewById(R.id.et2OwnerContact);
btnCreate=findViewById(R.id.btn2Create);
MyDbHandler db = new MyDbHandler(AddNewParty.this);
PartyModel partyModel = new PartyModel();
partyModel.setParName(etPartyName.getText().toString());
partyModel.setParType("Trader");
partyModel.setParOwner("Mr. XYZ");
partyModel.setParOwnerContact("9810454563");
btnCreate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
db.addParty(partyModel);
Intent intent = new Intent(AddNewParty.this,com.example.accounts.MainActivity.class);
startActivity(intent);
}`
});
}
}
解决方案
单击按钮后,从 editText 获取数据。
btnCreate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//if edit texts are not empty ,set it in model class
if(ePartyName.getText().toString().isEmpty() ||
netPartyType.getText().toString().isEmpty()||
etPartyOwner.getText().toString().isEmpty() ||
etPartyOwnerContact.getText().toString().isEmpty())
return;
else{
PartyModel partyModel = new PartyModel();
partyModel.setParName(etPartyName.getText().toString());
partyModel.setParType( netPartyType.getText().toString());
partyModel.setParOwner(etPartyOwner.getText().toString());
partyModel.setParOwnerContact(etPartyOwnerContact.getText().toString());
db.addParty(partyModel);
Intent intent = new Intent(AddNewParty.this,com.example.accounts.MainActivity.class);
startActivity(intent);
}`}
});
}
推荐阅读
- node.js - 使用 Node.js 和 Busboy 将多个文件上传到 S3
- wordpress - 从 woocommerce 折扣中排除类别
- php - oci_execute():ORA-06550:第 1 行,第 7 列:PLS-00306:错误的参数数量或类型
- javascript - 通过将数组添加到另一个数组中来创建多维数组
- mysql - MySQL 不允许访问 - “ERROR 1045 (28000)” - 在我的 Macbook 上新安装了免费社区版
- python - 证书验证失败,使用 MechanicalSoup
- django - 文件:在 Django Rest Framework 中使用 Postman “上传有效图像”
- javascript - 在异步编程中停止 javascript 循环
- excel - 当它引用的工作表更新时,如何替换公式以保留在 vba 中的特定单元格上
- react-native - react-navigation v5(下一个):从不同父级的子屏幕导航到嵌套的子屏幕