1

私はJavaの初心者ですが、すぐに習得できます。EditText からユーザー入力を取得し、Excel 列で一致する文字列を検索し、別の列 (の同じ行) の値を返すように Android アプリを作成しようとしています。

ビルド パスに jxl.jar を追加しましたが、私のコードは動作するはずです。独学で、私はゆっくりとデバッグを理解しています。問題は、ソース android.jar が見つからなかったようです (私の記憶が正しければ)。見つけたところ、「ソースの添付ファイルにinstrumentation.classファイルのソースが含まれていません」というメッセージが表示されます

エクセルを使った初めてのアプリです。どうにかして Android マニフェストに対処する必要がありますか?

念のため、ここに私のコードを示します。どんな助けも大歓迎です!:

public class Frame_Bore extends Activity {
private String inputFile;

public void setInputFile(String inputFile) {
    this.inputFile = "c:/Desktop/AAS Work/PDA Programs/JBDB.xls";
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.framebore);

    Button Btn1 = (Button) findViewById(R.id.button1);
    final EditText T1 = (EditText) findViewById(R.id.et1);
    final EditText T2 = (EditText) findViewById(R.id.et2);

    Btn1.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub

            String t1Value = T1.getText().toString();
            File inputWorkbook = new File(inputFile);
            Workbook w;
            String bore = null;

            try {
                w = Workbook.getWorkbook(inputWorkbook);
                Sheet sheet = w.getSheet("Frame-Bore");

                int y = 6;
                while (y < 200) {
                    int x = 2;
                    Cell columnB = sheet.getCell(x, y);
                    String motorframe = columnB.getContents();

                    if (motorframe == t1Value) {
                        Cell columnC = sheet.getCell(x + 1, y);
                        bore = columnC.getContents();
                    } else {
                        y = y + 1;
                    }

                }
            } catch (BiffException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                T2.setText("" + bore);
            }
        }
    });
}
4

2 に答える 2

0

ファイルをアセットフォルダーに入れ、次のようにアクセスします。

InputStream is = null;
        try {
            is = context.getAssets().open("JBDB.xls");
            workbook = Workbook.getWorkbook(is);

        } catch (IOException e) {

            e.printStackTrace();
        } catch (BiffException e) {

            e.printStackTrace();

        }
        if(workbook!=null)
        sheet = workbook.getSheet("Frame-bore");

contextあなたの主な活動の文脈です。

于 2012-09-13T21:24:53.220 に答える
0

エミュレーターから c: ドライブ ( "c:/Desktop/AAS Work/PDA Programs/JBDB.xls" ) にアクセスしようとしていますが、これは不可能です。デバイスで実行している場合は、リソース フォルダーまたは SD カードに Excel ファイルを配置する必要があります。

エミュレーターには仮想 SD カードがあり、その制限は、コンピューターから他のドライブに直接アクセスできないことです。ただし、Android アプリケーションに代わって操作を実行する Web サービスを作成することでそれを行うことができます。Android アプリケーションからこの Web サービスを呼び出す必要があります。

于 2012-09-01T03:01:49.387 に答える