早上好,所以我有这个程序,用户可以在其中扫描QR码并在SQLite数据库中获取它的值,但是在获取该值之前,该对话框弹出,通知我“没有找到参与者”。下面是我的代码:
这是我的onStart替代。
@Override
protected void onStart()
{
super.onStart();
getparticipantid = tvParticipantID.getText().toString();
etparticipantidvalue.setText(getparticipantid);
getParticipantIbeam();
}
这是我的活动,一旦用户扫描QR码,它将从数据库加载数据。
private void getParticipantIbeam()
{
SQLiteFunctionUlitity.GameIBeamParticipant memberInfo = SQLiteFunctionUlitity.getparticipantIbeam(getparticipantid, mDbHelper.getSqliteObjectWithReadable());
if (memberInfo != null)
{
tvParticipantName.setText(memberInfo.getParticipantName());
tvParticipantNation.setText(memberInfo.getParticipant_nationality());
tvParticipantCategory.setText(memberInfo.getCategory());
tvWave.setText(memberInfo.getWave_number());
tvCategory.setText(memberInfo.getCategory());
}
else
{
Context context = this;
AlertDialog.Builder builder1 = new AlertDialog.Builder(context);
builder1.setMessage("No Participant found in the Game.");
builder1.setCancelable(true);
builder1.setPositiveButton("Scan Again", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id)
{
Intent intent = new Intent(GameiBeamLineTracing.this, ScanGameIbeam.class);
startActivity(intent);
finish();
}
});
builder1.setNegativeButton("Close", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
onStop();
}
});
AlertDialog alert11 = builder1.create();
alert11.show();
}
}
您可以看到,我在onStart方法中调用了getParticipantIbeam活动,但是当我调用它时,它读取的是else语句而不是if语句。
我知道这是一个简单的if语句和生命周期,但是我非常想知道答案。
答案 0 :(得分:0)
我已经使用该库扫描QR码,它非常简单,可以为您提供帮助。
QR Code implementation library for android, Click here (blikoon)
该库肯定会解决您所有与QR Code相关的问题,并且不要忘记实现照片,图库等运行时权限。