ZXing - 如何将结果输入EditText,也用于手动输入?

时间:2012-11-20 17:25:39

标签: android zxing

我从ZXing(非嵌入式)获得了很好的结果,但我无法弄清楚如何将结果放入在布局xml中正确定义并在主类中声明的EditText中 - 或其他地方。这是我的代码:

public class main extends Activity implements OnClickListener {     
    EditText edit_text = null;  
@Override  
public void onCreate(Bundle savedInstanceState) {  
super.onCreate(savedInstanceState);  
setContentView(R.layout.main);  
edit_text = (EditText) findViewById(R.id.pn);  
findViewById(R.id.my_button).setOnClickListener(this);  
findViewById(R.id.scan_button).setOnClickListener(this);  
}  //end of onCreate  

ZXing的发布发生在条件中:

public void onClick(View arg0) {    
Button b = (Button)findViewById(R.id.my_button);  
Button s = (Button)findViewById(R.id.scan_button);  
if(arg0==s){  
    s.setClickable(false);      
    IntentIntegrator.initiateScan(this);    
}  
if(arg0==b){  
    b.setClickable(false);  
    findViewById(R.id.pn);  
CharSequence edit_text_value =edit_text.getText();  
itemno = edit_text_value.toString();  
InputMethodManager inputManager = (InputMethodManager)  
getSystemService(Context.INPUT_METHOD_SERVICE);   
inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(),
   InputMethodManager.HIDE_NOT_ALWAYS);  
new LongRunningGetIO().execute();  
}     
}//end of onClick method - note main class is still open

和最后的强制性zxing结果方法,仍在主类中:

public void onActivityResult(int requestCode, int resultCode, Intent data) {  
    IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode,     resultCode, data);  
    edit_text = (EditText) findViewById(R.id.pn);  
    if (scanResult != null) {  
            String resultStr = "";  
            resultStr = scanResult.getContents();  
            edit_text.setText = resultStr;  
        }  
}  
}//closes main class  

布局xml:

<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:id="@+id/main_layout"  
    android:layout_width="fill_parent"   
    android:layout_height="fill_parent"  
    android:orientation="vertical"  
    android:padding="5dp"    
        >               
<TextView  
    android:id="@+id/tag_line"  
    android:layout_width="wrap_content"  
    android:layout_height="wrap_content"   
/>     
<EditText android:layout_margin="20dip"   
    android:layout_width="fill_parent"  
    android:layout_height="wrap_content"    
    android:hint="Enter Item Number"  
    android:id="@+id/pn"   
    />  
<TableLayout  
        android:id="@+id/button_layout"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:stretchColumns="*"  
    >           
    <TableRow>  
        <Button  
            android:id="@+id/scan_button"  
            android:text="SCAN"  
        />      
        <Button android:layout_width="wrap_content"  
            android:id="@+id/my_button"  
            android:text="GET RESULTS"  
        />  
    </TableRow>  
    </TableLayout>      
    <EditText android:layout_margin="20dip"   
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"   
        android:minLines="30"  
        android:maxLines="30"     
        android:textSize="18sp"    
        android:editable="false"   
        android:id="@+id/my_edit" />        
     <WebView xmlns:android="http://schemas.android.com/apk/res/android"   
         android:id="@+id/webview"   
         android:layout_width="fill_parent"   
         android:layout_height="fill_parent" />   
    </LinearLayout>     
好的,我已经尝试了所有的东西并在我不知道存在的地方搜索过。有谁关心告诉我我做错了什么???对不起草率的代码。第一个Q贴在这里。提前谢谢!

1 个答案:

答案 0 :(得分:0)

edit_text.setText = resultStr;

该行不应该编译。 setText()是一种方法,因此您可以这样称呼它:

edit_text.setText(resultStr);