2012-06-04 118 views
1

即時通訊使用ZyXEL條形碼掃描器的impimentation,我想將字符串'upc'傳遞給EditText對象出這個函數, 我該怎麼做?如何將數據從函數傳遞到外部對象(android)

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    switch(requestCode) 
    { 
     case IntentIntegrator.REQUEST_CODE: 
     { 
      if (resultCode != RESULT_CANCELED) 

       { 
          IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data); 
          if (scanResult != null) 
          { 
          String upc = scanResult.getContents(); 

          } 

       } 
       break; 
       } 
      } 
     } 

第二個問題:

我想一下這樣的一個按鈕後,調用一個函數:

button3.setOnClickListener(new OnClickListener() 
    { 

     @Override 
     public void onClick(View v) 
     { 

      IntentIntegrator.initiateScan(this); 

     } 
    }); 

,但我得到這個錯誤:

"The method initiateScan(Activity) in the type IntentIntegrator is not applicable for the arguments (new View.OnClickListener(){})"

所以我用盡通過調用這個問題來解決這個問題,當點擊這個按鈕時,這個按鈕被稱爲原始的樂趣ction

它看起來像這樣:

button3.setOnClickListener(new OnClickListener() 
    { 

     @Override 
     public void onClick(View v) 
     { 
      turntheshiton(); 

     } 
    }); 

public void turntheshiton() 
{ 
    IntentIntegrator.initiateScan(this); 
} 

,但它不是解決了這一點,真正優雅的方式,沒有任何其他辦法嗎?

謝謝!!

+0

在IntentIntegrator.initiateScan(本);你想通過活動ref或listner ref?如果activity然後使用。就像第一個問題Activity.this –

+0

,調用任何具有字符串參數的函數有什麼問題 –

回答

3
String upc = scanResult.getContents(); 
updateEditField(upc);// or use <activity-name>.this.updateEditField(upc); 




private void updateEditField(String str){ 

EditField ef = (EditField)findViewByID(R.id.<ef_id>); 

     if(null!=ef){ 
      ef.setText(str): 
     } 
} 

第二個問題:

in IntentIntegrator.initiateScan(this); 



use <activity-name>.this like Activity.this 
+0

感謝您的答案,但即時嘗試使用MyActivity.this,它說: 「賦值的左邊必須是一個變量」 – user1284567

+0

正是你所得到的錯誤代碼普萊舍 –

+0

這裏: button3.setOnClickListener(新OnClickListener(){ @覆蓋 \t \t \t公共無效的onClick(查看v)//這裏我得到這個錯誤 { \t MyActivity.this \t } }); – user1284567

相關問題