2011-12-10 4 views
24

나는 간단한 txt 파일 기능을 읽었습니다.getAssets(); 다른 클래스에서

AssetManager mngr = getAssets(); 
InputStream is = mngr.open("textdb.txt"); 

내 주요 활동에서 작동합니다. 하지만 별도의 클래스에서 동일한 코드를 사용하면 getAssets()는 null/crash 만 반환합니다.

메인 클래스에서만 작동하는 이유를 찾을 수 없습니다.

아이디어가 있으십니까?

솔루션 :

subClass.ReadSettings(getApplicationContext()); 

public String[] ReadSettings(Context myContext) { 
} 

답변

51

는 다른 클래스는 또한 Activity인가? getAssets()는 Context의 메소드입니다. 클래스가 활동이 아닌 경우 컨텍스트를 전달한 다음 getAssets를 호출해야합니다. 그래서 같이

:

public myClass(Context myContext) { 
    AssetManager mngr = myContext.getAssets(); 
    InputStream is = mngr.open("textdb.txt"); 
} 
+1

감사합니다! 그게 해결 됐어! 컨텍스트를 전달합니다. – jonassvensson

+0

문제가 없습니다! 체크 표시를 클릭하여 정답으로 답을 선택할 수 있습니까? 그러면 '답이 없음'목록에서 질문이 삭제되고 동일한 문제가있는 다른 사람들이 정답을 쉽게 찾을 수 있습니다. –

관련 문제