我搜索了每个目录,我没有看到问题,请帮助我。
blockquoteprocess:原因:java.lang.nullpointerexception:尝试在com.example.projectmanagement.wallet.createcashactivity.setvieworupdatewallet(createcashactivity)的空对象引用上调用虚拟方法“void android.view.view.setvisibility(int)”。java:58)在com.example.projectmanagement.wallet.createcashactivity.oncreate(createcashactivity)。java:46)
我的密码是:
公共类createcashactivity扩展了appcompatactivity{
private EditText inputWalletTitle, inputWalletSubtitle, inputWalletText;
private Wallet alreadyAvailableWallet;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create_wallet);
ImageView imageBack = findViewById(R.id.imageBack);
imageBack.setOnClickListener(v -> onBackPressed());
inputWalletTitle = findViewById(R.id.inputWalletTitle);
inputWalletSubtitle = findViewById(R.id.inputWalletSubtitle);
inputWalletText = findViewById(R.id.inputWalletText);
Button save_btn = findViewById(R.id.save_btn);
save_btn.setOnClickListener(v -> saveWallet());
ImageView imageSave = findViewById(R.id.imageSave);
imageSave.setOnClickListener(v -> saveWallet());
if (getIntent().getBooleanExtra("isViewOrUpdate", false)) {
alreadyAvailableWallet = (Wallet) getIntent().getSerializableExtra("wallet");
setViewOrUpdateWallet();
}
}
private void setViewOrUpdateWallet() {
inputWalletTitle.setText(alreadyAvailableWallet.getTitle());
inputWalletSubtitle.setText(alreadyAvailableWallet.getSubtitle());
inputWalletText.setText(alreadyAvailableWallet.getWalletText());
if (alreadyAvailableWallet != null) {
this.findViewById(R.id.layoutDeleteWallet).setVisibility(View.VISIBLE);
}
}
private void saveWallet() {
if (inputWalletTitle.getText().toString().trim().isEmpty()) {
Toast.makeText(this, "Uzupełnij kwotę oraz walutę!", Toast.LENGTH_SHORT).show();
return;
}
if (inputWalletSubtitle.getText().toString().trim().isEmpty()) {
Toast.makeText(this, "Brak zlecenia!", Toast.LENGTH_SHORT).show();
return;
}
if (inputWalletText.getText().toString().trim().isEmpty()) {
Toast.makeText(this, "Brak opisu wydatku!", Toast.LENGTH_SHORT).show();
return;
}
final Wallet wallet = new Wallet();
wallet.setTitle(inputWalletTitle.getText().toString());
wallet.setSubtitle(inputWalletSubtitle.getText().toString());
wallet.setWalletText(inputWalletText.getText().toString());
if (alreadyAvailableWallet != null) {
wallet.setId(alreadyAvailableWallet.getId());
}
@SuppressLint("StaticFieldLeak")
class SaveWalletTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... voids) {
WalletDatabase.getDatebase(getApplicationContext()).walletDao().insertWallet(wallet);
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
Intent intent = new Intent();
setResult(RESULT_OK, intent);
finish();
}
}
new SaveWalletTask().execute();
}
public void deleteText(View view) {
final LinearLayout layoutMiscellcash = findViewById(R.id.layoutDeleteWallet);
layoutMiscellcash.findViewById(R.id.layoutDeleteWallet).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@SuppressLint("StaticFieldLeak")
class DeleteWalletTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... voids) {
WalletDatabase.getDatebase(getApplicationContext()).walletDao()
.deleteWallet(alreadyAvailableWallet);
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
Intent intent = new Intent();
intent.putExtra("isWalletDeleted", true);
setResult(RESULT_OK, intent);
finish();
}
}
new DeleteWalletTask().execute();
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (data != null) {
}
}
}
}
logcat显示第58行和第46行,这是: this.findViewById(R.id.layoutDeleteWallet).setVisibility(View.VISIBLE);
以及: if (getIntent().getBooleanExtra("isViewOrUpdate", false)) { alreadyAvailableWallet = (Wallet) getIntent().getSerializableExtra("wallet"); setViewOrUpdateWallet(); }
我看不出这有什么问题。请帮忙。
暂无答案!
目前还没有任何答案,快来回答吧!