如何将数据从函数传递到外部对象(android)

时间:2012-06-04 17:11:30

标签: android button barcode

即时通讯使用ZyXEL条形码扫描仪,我想将字符串'upc'传递给此函数的EditText对象, 我怎么能这样做?

 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);

        }
    });

但是我收到了这个错误:

  

“IntentIntegrator类型中的方法initiateScan(Activity)不是   适用于参数(new View.OnClickListener(){})“

所以香港专业教育学院试图通过在单击此按钮时调用函数来解决此问题,此按钮调用原始函数

它看起来像这样:

 button3.setOnClickListener(new OnClickListener()
    {

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

        }
    });

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

但解决这个问题并不是真正优雅的方式,还有其他办法吗?

谢谢!

1 个答案:

答案 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