gpt4 book ai didi

java - 按后退按钮时强制关闭

转载 作者:行者123 更新时间:2023-12-02 07:51:56 25 4
gpt4 key购买 nike

当我进入此页面并单击后退按钮时,我会强制关闭,因为它强制关闭我的条形码扫描结果不显示。如何停止应用程序强制关闭?

private EditText mTitleText;
private EditText mBodyText;
private EditText mquantityint;
private EditText mbarcodeint;
private Long mRowId;
private NotesDbAdapter mDbHelper;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mDbHelper = new NotesDbAdapter(this);
mDbHelper.open();

setContentView(R.layout.note_edit);

mTitleText = (EditText) findViewById(R.id.title);
mBodyText = (EditText) findViewById(R.id.body);
mquantityint = (EditText) findViewById(R.id.quantity);
mbarcodeint = (EditText) findViewById(R.id.barcode);

Button barcode2 = (Button) findViewById(R.id.sbarcode);
barcode2.setOnClickListener(new OnClickListener() {
public void onClick(View arg0)
{
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "PRODUCT_MODE");
intent.putExtra("SAVE_HISTORY", false);//this stops saving ur barcode in barcode scanner app's history
startActivityForResult(intent, 0);
}
});

Button confirmButton = (Button) findViewById(R.id.confirm);

mRowId = (savedInstanceState == null) ? null :
(Long) savedInstanceState.getSerializable(NotesDbAdapter.KEY_ROWID);
if (mRowId == null) {
Bundle extras = getIntent().getExtras();
mRowId = extras != null ? extras.getLong(NotesDbAdapter.KEY_ROWID)
: null;
}

populateFields();

confirmButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
setResult(RESULT_OK);
finish();
}
});
}

private void populateFields() {
if (mRowId != null) {
Cursor note = mDbHelper.fetchNote(mRowId);
startManagingCursor(note);
mTitleText.setText(note.getString(
note.getColumnIndexOrThrow(NotesDbAdapter.KEY_TITLE)));
mBodyText.setText(note.getString(
note.getColumnIndexOrThrow(NotesDbAdapter.KEY_BODY)));
mquantityint.setText(note.getString(
note.getColumnIndexOrThrow(NotesDbAdapter.KEY_QUANTITY)));
mbarcodeint.setText(note.getString(
note.getColumnIndexOrThrow(NotesDbAdapter.KEY_BARCODE)));
}
}

@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
saveState();
outState.putSerializable(NotesDbAdapter.KEY_ROWID, mRowId);
}

@Override
protected void onPause() {
super.onPause();
saveState();
}

@Override
protected void onResume() {
super.onResume();
populateFields();
}

private void saveState() {
String title = mTitleText.getText().toString();
String body = mBodyText.getText().toString();
int quantity =Integer.parseInt( mquantityint.getText().toString());
int barcode =Integer.parseInt( mbarcodeint.getText().toString());
if (mRowId == null) {
long id = mDbHelper.createNote(title, body, quantity, barcode);
if (id > 0) {
mRowId = id;
}
} else {
mDbHelper.updateNote(mRowId, title, body, quantity, barcode);
}
}

public void onActivityResult(int requestCode, int resultCode, Intent data)
{
String contents =null;
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 0)
{
if (resultCode == RESULT_OK)
{
contents = data.getStringExtra("SCAN_RESULT");
// String format = data.getStringExtra("SCAN_RESULT_FORMAT");
//Variable set for QR scan result
EditText sbarcodeno = (EditText) findViewById(R.id.barcodeno);
//Variable set to display custom string above result
EditText Result =(EditText) findViewById(R.id.sbarcode);
//Displays actual
sbarcodeno.setText(contents);
//Edit string here
Result.setText("");
// TO DO - Modify code so the result launches in another activity.
}
else if (resultCode == RESULT_CANCELED)
{
// Handle cancel
}
}
}
@Override
public void onBackPressed() {
this.finish();
return;
}
}

logcat-

04-13 01:24:47.355: E/AndroidRuntime(2575): FATAL EXCEPTION: main
04-13 01:24:47.355: E/AndroidRuntime(2575): java.lang.RuntimeException: Unable to pause activity {bhavik.smart.shopping/bhavik.smart.shopping.NoteEdit}: java.lang.NumberFormatException: Invalid int: ""
04-13 01:24:47.355: E/AndroidRuntime(2575): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2706)
04-13 01:24:47.355: E/AndroidRuntime(2575): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2662)
04-13 01:24:47.355: E/AndroidRuntime(2575): at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:2640)
04-13 01:24:47.355: E/AndroidRuntime(2575): at android.app.ActivityThread.access$800(ActivityThread.java:123)
04-13 01:24:47.355: E/AndroidRuntime(2575): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
04-13 01:24:47.355: E/AndroidRuntime(2575): at android.os.Handler.dispatchMessage(Handler.java:99)
04-13 01:24:47.355: E/AndroidRuntime(2575): at android.os.Looper.loop(Looper.java:137)
04-13 01:24:47.355: E/AndroidRuntime(2575): at android.app.ActivityThread.main(ActivityThread.java:4424)
04-13 01:24:47.355: E/AndroidRuntime(2575): at java.lang.reflect.Method.invokeNative(Native Method)
04-13 01:24:47.355: E/AndroidRuntime(2575): at java.lang.reflect.Method.invoke(Method.java:511)
04-13 01:24:47.355: E/AndroidRuntime(2575): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
04-13 01:24:47.355: E/AndroidRuntime(2575): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
04-13 01:24:47.355: E/AndroidRuntime(2575): at dalvik.system.NativeStart.main(Native Method)
04-13 01:24:47.355: E/AndroidRuntime(2575): Caused by: java.lang.NumberFormatException: Invalid int: ""
04-13 01:24:47.355: E/AndroidRuntime(2575): at java.lang.Integer.invalidInt(Integer.java:138)
04-13 01:24:47.355: E/AndroidRuntime(2575): at java.lang.Integer.parseInt(Integer.java:359)
04-13 01:24:47.355: E/AndroidRuntime(2575): at java.lang.Integer.parseInt(Integer.java:332)
04-13 01:24:47.355: E/AndroidRuntime(2575): at bhavik.smart.shopping.NoteEdit.saveState(NoteEdit.java:138)
04-13 01:24:47.355: E/AndroidRuntime(2575): at bhavik.smart.shopping.NoteEdit.onPause(NoteEdit.java:126)
04-13 01:24:47.355: E/AndroidRuntime(2575): at android.app.Activity.performPause(Activity.java:4563)
04-13 01:24:47.355: E/AndroidRuntime(2575): at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1195)
04-13 01:24:47.355: E/AndroidRuntime(2575): at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2693)
04-13 01:24:47.355: E/AndroidRuntime(2575): ... 12 more

最佳答案

由于线条,你正在被强制靠近

int quantity =Integer.parseInt( mquantityint.getText().toString());
int barcode =Integer.parseInt( mbarcodeint.getText().toString());

在 saveState() 中。当您按下后退按钮时,其中一个 TextView 为空。

注意错误日志中的这一行

 java.lang.NumberFormatException: Invalid int: ""

当您对无效字符串运行 parseInt 时会抛出此错误。在本例中,它告诉您该字符串为空。您需要在运行 parseInt 之前检查字符串是否为空,或者在方法周围抛出 try catch。

祝你好运。

关于java - 按后退按钮时强制关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10133717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com