это мой первый вопрос о стеке*переполнении*!
Я использую Eclipse с инструментами разработки Android. Я скопировал код с GitHub - ZXing для сканирования QR-кода с помощью Сканер штрих-кода (многие из вас уже видели этот код, я уверен):
public void onClick(View v)
{
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent,0);
}
Я могу запустить сканер штрих-кода, и он возвращает результаты в методе onActivityResult()
.
public void onActivityResult(int requestCode, int resultCode, Intent intent)
{
if (requestCode == 0)
{
if (resultCode == RESULT_OK)
{
contents = intent.getStringExtra("SCAN_RESULT");
format = intent.getStringExtra("SCAN_RESULT_FORMAT");
// Handle successful scan
if(contents == "1")
{
contentsLat = contents;
}
else if(contents == "0")
{
contentsRow = contents;
}
else
{
Toast.makeText(getApplicationContext(), "Code Not Recognized\n"+contents+"\n1", Toast.LENGTH_LONG).show();
}
}
else if (resultCode == RESULT_CANCELED)
{
// Handle cancel
Toast.makeText(getApplicationContext(), "Unsuccessful Scan", Toast.LENGTH_SHORT).show();
}
}
}
Однако оператор else
выполняется всегда... если только я явно не приравняю contents
к 1
. Ниже приведена ссылка на снимок экрана (у меня пока нет прав на встроенное изображение) выполняемого тела else
, и всплывающее уведомление ясно указывает, что contents=1
. Что я сделал не так? Я что-то пропустил?
Спасибо всем.