我有2類,從類BinderData,它擴展BaseAdapter(我不能擴展這個類到活動,因爲我必須擴展到BaseAdapter)我打電話給類AssetActivity下面的代碼:Android資產管理器getAsset()拋出nullPointer異常
AssetActivity a = new AssetActivity();
Drawable image=a.getImage(imageUri);
這裏imageuri是一個字符串,它被正確填充。在我使用的AssetActivity類以下代碼中。
public class AssetActivity extends Activity {
private static final String TAG = "AssetActivity";
public Drawable getImage(String imgName) {
String nextImageName = imgName+ ".jpg";
AssetManager assets = getAssets(); // get app's AssetManager
InputStream stream; // used to read in Image images
Drawable flag=null;
try {
// get an InputStream to the asset representing the next Image
stream = assets.open(nextImageName);
// load the asset as a Drawable and display on the objImageView
flag = Drawable.createFromStream(stream, nextImageName);
} // end try
catch (IOException e) {
Log.e(TAG, "Error loading " + nextImageName, e);
} // end catch
return flag;
}
}
當我運行代碼時,我得到NullPointerException在下面的行。
AssetManager assets = getAssets();
有在資源文件夾的資產,我能夠在其中明確要求getAssets()方法,其它的類來接他們和類擴展活動。請幫我解決一下這個。我懷疑我在調用BinderData類中的getImage方法時做錯了什麼。請幫幫我。謝謝。
日Thnx但你可以請詳細說明更多,因爲我是新來的Android和Java。 – Sid
@Sid好的..你還想知道什麼?只需將該方法放置在您當前的活動中並直接調用即可。使用'context.getAssets()'代替'getAssets()' – Pragnani
我不能將該方法放在我的主類中,因爲它不是一個BaseAdapter活動。我不明白context.getAssets()以及如何使用它。我應該在Activity類中使用它嗎? – Sid