2

assets フォルダー内のファイルで文字列を検索できるようにしようとしています。getassets().open は未定義と言っています。私はどこかでこの方法が機能することを読みました。これが私のコードです:

    import java.io.File;
    import java.util.Scanner;

    import android.content.Context;
    import android.util.Log;

    public class Search {

 public static void LoadStuff(String Name) {

      Scanner reader = null;
      try {
          reader = new Scanner(new File(getAssets().open("myFile.txt"))); 
      } catch (Exception e) {
         Log.d("damn", "FAIL");
      }
         if(reader != null)
            Load(reader);
   }




private static void Load(Scanner reader) {
      while (reader.hasNext()) {
         String result = reader.next();
         if (result.equals("water")) {   
            while (result != "KEYEND") {
               int index = reader.nextInt();
               Log.d("Index", String.valueOf(index));
            }
         }
      }
            reader.close();
   }
    }
4

3 に答える 3

3

getAssets を呼び出していますが、実際には読み込むコンテキストがありません。アプリケーション コンテキストをこのクラスに渡す必要があります。

public static void LoadStuff(Context appContext, String fileName){

それで

appContext.getAssets().open(fileName);

Scannerコンストラクターは in も受け入れるInputStreamため、行は次のようになります。

 reader = new Scanner(getAssets().open("myFile.txt"));
于 2013-11-05T06:14:54.593 に答える
0

getAssets() メソッドを使用するには、BaseApplicationContext または Activity Context が必要です。

context.getAssets() を使用してみてください

 AssetManager assets = activityContext.getResources().getAssets();
 InputStream inputStream = assets.open("SlideImages/"+fullImage);
于 2013-11-05T06:09:49.957 に答える