我试图将不同的图像(.jpg,.png)动态地放入ListView from r中es/drawable.我从数据库中获取的图像中的名称.图像本身位于res/drawable文件夹中.
这是我已经拥有的,错误:D
String imgName; - >我需要从数据库中获取img名称
Drawable drawable;
drawable = Class.appContext.getResources().getDrawable(Class.appContext.getResources().getIdentifier("com.example.test:drawable/"+imgName,null,null));
Run Code Online (Sandbox Code Playgroud)
然后我把它变成ArrayList数据库中的每个图像(+ - 200个图像):
ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
HashMap<String, Object> map = new HashMap<String, Object>();
map = new HashMap<String, Object>();
map.put("img",drawable);
map.put("text", "some text");
list.add(map);
Run Code Online (Sandbox Code Playgroud)
现在我返回列表;
在我打电话的班级:
listReceive = Class.getImages(appContext);
listSetup = new SimpleAdapter(this, listReceive, R.layout.row,
new String[] {"img", "text"}, new int[] {R.id.IMG_CELL, R.id.TEXT_CELL});
lvList.setAdapter(listSetup);
Run Code Online (Sandbox Code Playgroud)
XML行是一个ImageView和一个TextView.
System.out:resolveUri在坏位图uri上失败:android.drawable.bitmapDrawable@405739 resolveUri在坏位图uri上失败:android.drawable.bitmapDrawable@405639 resolveUri在坏位图uri上失败:android.drawable.bitmapDrawable@405959 resolveUri在失败时失败位图uri:android.drawable.bitmapDrawable@405677 ...... ......
当我将图像保存到本地或SDcard内存中时,我将其工作,然后将路径放在arraylist中,如:
map.put("img","/data/data/com.example.test/images/" …Run Code Online (Sandbox Code Playgroud) 当我按下主页按钮时,应该暂停应用程序,保存所有状态并正常工作.相反,我得到这个错误:
java.lang.RuntimeException:无法暂停活动{be.test.tester/be.test.tester.DataScreen}:java.lang.IllegalStateException:派生类未在android.app.ActivityThread.performPauseActivity中调用super.onSaveInstanceState() (ActivityThread.java:3641)位于android.app.A活动时的android.app.ActivityThread.performPauseActivity(ActivityThread.java:3598),android.app.A活动.事件(ActivityThread.java:3574),android.app.ActivityThread.access $ 2500(ActivityThread.java) :136)在android.app.A.运行时,Android.O.Roper.loop(Looper.java:143)的android.app.Handler.dispatchMessage(Handler.java:99)上的android.app.ActivityThread $ H.handleMessage(ActivityThread.java:2186)在android.app.ActivityThread.main(ActivityThread.java:5068)的java.lang.reflect.Method.invokeNative(Native Method),位于com.android的java.lang.reflect.Method.invoke(Method.java:521) .internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:858)位于dalvik.system.NativeStart.mai的com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)n(原生方法)
引起:java.lang.IllegalStateException:派生类没有在android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:1207)的android.view.View.dispatchSaveInstanceState(View.java:6087)中调用super.onSaveInstanceState() android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:1207)at android.view.View.saveHierarchyState(View.java:6068)at com.android.internal.policy.impl.PhoneWindow.saveHierarchyState(PhoneWindow.java:1475)在android.app.A活动状态(Activity.java:1056)的android.app.A活动中的android.app.A活动状态(Activity.java:1056)的android.app.A活动状态中的android.app.Activity.onSaveInstanceState(Activity.java:1106). ActivityThread.performPauseActivity(ActivityThread.java:3623)...还有12个
我的活动在触摸时做出反应:
public class DataScreen extends Activity implements OnGestureListener{
Run Code Online (Sandbox Code Playgroud)
我从意图中获得了一些额外的东西:
totUsage = Integer.parseInt(getIntent().getStringExtra("extraTotUsage"));
limit = Integer.parseInt(getIntent().getStringExtra("extraLimit"));
Bundle bundle = getIntent().getExtras();
mylist = (ArrayList<HashMap<String, String>>) bundle.get("extraMyList");
Run Code Online (Sandbox Code Playgroud)
自定义视图显示数据(画布).在屏幕上滚动时,数据会在自定义视图(set,get方法)中更改并重绘自身.
我真的没有在这里管理onSaveInstanceState,不知道我是否必须这样做.
我的应用程序是堆栈的顶部,因为:
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Run Code Online (Sandbox Code Playgroud)
我不明白这个错误.