从SQLite DB动态填充Bitmapfun图像(使用Url字符串)

时间:2012-12-14 15:11:45

标签: java android arrays sqlite

我正在研究我的Android应用程序,遗憾的是,我走到了尽头。 我正在使用Bitmapfun中的示例。我的问题是:样本工作正常,但我尝试了每一种方式尝试填充Images类中包含的两个数组并将图像提供给网格。因此,每次我传递不同的参数时,不同的图像将被添加到两个数组中并显示在网格中。

DatabaseHandler.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;
}

Images.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",
};
}

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

感谢任何形式的帮助。我被困了一个多星期了。

提前致谢, 哈里斯

PS。我 NOT 想在这里使用arraylist,我真的需要使用一个简单的数组。

修改 我测试了一些虚拟数据并试图从另一个活动调用我的DatabaseHandler方法,它工作正常。所以我猜问题就在别的地方。

这是我的logcat:

  

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):at 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):at 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):at java.lang.reflect.Method.invokeNative(Native Method)   12-14 21:23:25.753:E / AndroidRuntime(9899):at java.lang.reflect.Method.invoke(Method.java:507)   12-14 21:23:25.753:E / AndroidRuntime(9899):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:839)   12-14 21:23:25.753:E / AndroidRuntime(9899):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)   12-14 21:23:25.753:E / AndroidRuntime(9899):at 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):at com.example.project.provider.Images。(Images.java:61)   12-14 21:23:25.753:E / AndroidRuntime(9899):... 22更多

1 个答案:

答案 0 :(得分:0)

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