1

この 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;
                }
            }
        }

2 番目の質問:

このようなボタンをクリックした後に関数を呼び出したい:

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

しかし、これを解決するのは本当にエレガントな方法ではありません。他に方法はありますか?

ありがとう!!

4

1 に答える 1

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):
      }
}

2番目の質問:

in IntentIntegrator.initiateScan(this);



use <activity-name>.this like Activity.this
于 2012-06-04T17:30:32.897 に答える