我从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贴在这里。提前谢谢!
答案 0 :(得分:0)
edit_text.setText = resultStr;
该行不应该编译。 setText()
是一种方法,因此您可以这样称呼它:
edit_text.setText(resultStr);