0

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>     

OK、私はすべてを試し、存在することを知らなかった場所を検索しました。誰かが私が間違ったことを私に見せてくれませんか?ずさんなコードでごめんなさい。最初のQはここに投稿されました。前もって感謝します!

4

1 に答える 1

0
edit_text.setText = resultStr;

その行はコンパイルされません。setText()はメソッドなので、次のように呼び出します。

edit_text.setText(resultStr);
于 2012-11-20T17:55:32.597 に答える