2016-09-26 4 views
-1

Я пытаюсь использовать значение «полезной нагрузки» из внешней записи, которую я написал в тег NFC. Я знаю, что запись была успешно записана в тег NFC. У меня возникают проблемы с использованием этого значения «полезной нагрузки» в инструкции «if». Мой код следующим образом:Использовать переменную «полезная нагрузка» NFC в операторе «if»

protected void onResume() { 
    super.onResume(); 

    // read nfc tag...IS THIS WHAT WILL "READ" THE PAYLOAD VALUE THAT HAS BEEN WRITTIEN? 

    if (getIntent().hasExtra(NfcAdapter.EXTRA_TAG)) { 

     NdefMessage ndefMessage =  this.getNdefMessageFromIntent(getIntent()); 
     if(ndefMessage.getRecords().length > 0){ 
      NdefRecord ndefRecord = ndefMessage.getRecords()[0]; 
      String payload = new String(ndefRecord.getPayload()); 
      Toast.makeText(this, payload, Toast.LENGTH_SHORT).show(); 
     } 
    } 
    enableForegroundDispatchSystem(); 
} 

После того, как я могу «прочитать» значение полезной нагрузки, я хочу, чтобы указать, что блок кода для запуска. Например:

protected void onNewIntent(Intent intent) { 
    super.onNewIntent(intent); 


    ///IF Payload Value = 1...Then run this code block: 

    if (intent.hasExtra(NfcAdapter.EXTRA_TAG)) 
    { 
     Toast.makeText(this, "NFC Scan", Toast.LENGTH_SHORT).show(); 
     Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); 

     String url = "http://www.google.com"; 
     Intent i = new Intent(Intent.ACTION_VIEW); 
     i.setData(Uri.parse(url)); 
     startActivity(i); 
    } 

    ///IF Payload = 2, then run this code block: 

if (intent.hasExtra(NfcAdapter.EXTRA_TAG)) 
    { 
     Toast.makeText(this, "NFC Scan", Toast.LENGTH_SHORT).show(); 
     Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); 

     String url = "http://www.yahoo.com"; 
     Intent i = new Intent(Intent.ACTION_VIEW); 
     i.setData(Uri.parse(url)); 
     startActivity(i); 
    } 

} 

Я надеюсь, что это имеет смысл, я только пытаюсь запустить простой «если/иначе» оператор, основанный на значении Payload, что было написано в теге. Спасибо за любую помощь!

ответ

0

Предполагая, что вы обращаетесь к переменной строке payload в OnResume, то вы можете написать:

if (payload.equals("1")) {...}