0

我目前正在开发我的 android 应用程序,可悲的是,我走到了死胡同。我正在使用来自Bitmapfun的示例。我的问题是:示例工作正常,但我尝试了各种方法来填充 Images 类中包含的两个数组并将图像提供给网格。所以每次我传递不同的参数时,不同的图像将被添加到两个数组中并显示到网格中。

数据库处理程序.java

public String[] getImagesUrl(String rest_name, String area) {
    String[] images_url = new String[] {};

     // Select All Query
       String selectQuery = "SELECT * FROM menu_images where _area ='" + area + "'" + " AND rest_name='" + rest_name + "'";


       SQLiteDatabase db = this.getReadableDatabase();
       Cursor cursor = db.rawQuery(selectQuery, null); 

    // looping through all rows and adding to list
       if (cursor.moveToFirst()) {
           for (int i = 0; i < cursor.getCount(); i++)
            {
                images_url[i] = cursor.getString(cursor.getColumnIndex("_images"));
                cursor.moveToNext();
            }  
       }

       // closing connection
        cursor.close();
        db.close();

       return images_url;
}

图片.java

import java.util.ArrayList;
import java.util.List;

import com.example.project.DatabaseHandler;

public class Images {

private static DatabaseHandler dbHandler;

public final static String[] imageUrls = new String[] {
    "http://xtcgamers.com/images/pic2.png",
};


public final static String[] imageThumbUrls = new String[] {
    "http://xtcgamers.com/thumb_images/pic2.png",
};
}

我应该如何调用我的其他方法以便填充这两个数组?因为当我尝试这样做时,我总是会遇到某种异常(这取决于我是否尝试将数组列表转换为数组并返回等等)

任何形式的帮助表示赞赏。我被困了一个多星期。

在此先感谢,哈里斯

附言。我不想在这里使用数组列表,我真的需要使用简单的数组。

编辑: 我已经测试了一些虚拟数据并尝试从另一个活动中调用我的 DatabaseHandler 方法,它工作正常。所以我想问题出在其他地方。

这是我的日志:

12-14 21:23:25.753:E/AndroidRuntime(9899):致命异常:主要 12-14 21:23:25.753:E/AndroidRuntime(9899):java.lang.ExceptionInInitializerError 12-14 21:23:25.753: E/AndroidRuntime(9899): 在 com.example.project.ui.ImageGridFragment$ImageAdapter.getCount(ImageGridFragment.java:221) 12-14 21:23:25.753: E/AndroidRuntime(9899): 在 android.widget.GridView .setAdapter(GridView.java:131) 12-14 21:23:25.753: E/AndroidRuntime(9899): 在 com.example.project.ui.ImageGridFragment.onCreateView(ImageGridFragment.java:97) 12-14 21:23 :25.753: E/AndroidRuntime(9899): 在 android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:871) 12-14 21:23:25.753: E/AndroidRuntime(9899): 在 android.support。 v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1083) 12-14 21:23:25.753: E/AndroidRuntime(9899):在 android.support.v4.app.BackStackRecord.run(BackStackRecord.java:635) 12-14 21:23:25.753: E/AndroidRuntime(9899): 在 android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager. java:1431) 12-14 21:23:25.753: E/AndroidRuntime(9899): 在 android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:523) 12-14 21:23:25.753: E/ AndroidRuntime(9899): 在 android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129) 12-14 21:23:25.753: E/AndroidRuntime(9899): 在 android.app.Activity.performStart(Activity.java:3791 ) 12-14 21:23:25.753: E/AndroidRuntime(9899): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1620) 12-14 21:23:25.753: E/AndroidRuntime(9899): 在 android .app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 12-14 21:23:25.753:E/AndroidRuntime(9899): 在 android.app.ActivityThread.access$1500(ActivityThread.java:117) 12-14 21:23:25.753: E/AndroidRuntime(9899): 在 android.app.ActivityThread$H.handleMessage( ActivityThread.java:931) 12-14 21:23:25.753: E/AndroidRuntime(9899): 在 android.os.Handler.dispatchMessage(Handler.java:99) 12-14 21:23:25.753: E/AndroidRuntime( 9899): 在 android.os.Looper.loop(Looper.java:123) 12-14 21:23:25.753: E/AndroidRuntime(9899): 在 android.app.ActivityThread.main(ActivityThread.java:3683) 12 -14 21:23:25.753: E/AndroidRuntime(9899): 在 java.lang.reflect.Method.invokeNative(Native Method) 12-14 21:23:25.753: E/AndroidRuntime(9899): 在 java.lang。 reflect.Method.invoke(Method.java:507) 12-14 21:23:25.753: E/AndroidRuntime(9899): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 12-14 21:23:25.753: E/AndroidRuntime(9899): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 12-14 21:23:25.753: E/ AndroidRuntime(9899): 在 dalvik.system.NativeStart.main(Native Method) 12-14 21:23:25.753: E/AndroidRuntime(9899): 由: java.lang.NullPointerException 12-14 21:23:25.753: E/AndroidRuntime(9899): 在 com.example.project.provider.Images.(Images.java:61) 12-14 21:23:25.753: E/AndroidRuntime(9899): ... 22 更多provider.Images.(Images.java:61) 12-14 21:23:25.753: E/AndroidRuntime(9899): ... 22 更多provider.Images.(Images.java:61) 12-14 21:23:25.753: E/AndroidRuntime(9899): ... 22 更多

4

1 回答 1

0

如果您尝试实现 BitmapFun 示例,我建议您放弃整个 url 数组,并更改库的 loadImage 方法,直接采用 String url(只需注释掉采用 int 和 imageView 的那个),并使用 imageFetcher.loadImage(item .imageUrl, imageView) 直接在适配器的 getView 中

于 2012-12-19T17:27:42.987 回答