0

私は現在、Android アプリケーションに取り組んでいますが、悲しいことに、私は行き止まりになりました。Bitmapfunのサンプルを使用しています。私の問題は次のとおりです。サンプルは正常に動作していますが、Images クラスに含まれる 2 つの配列にデータを入力し、画像をグリッドに提供しようとするあらゆる方法を試しました。したがって、異なるパラメーターを渡すたびに、異なる画像が 2 つの配列に追加され、グリッドに表示されます。

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

これらの 2 つの配列に値を設定するには、他のメソッドをどのように呼び出す必要がありますか? しようとすると、常に何らかの例外が発生するためです(配列リストを配列に変換して元に戻そうとするかどうかによって異なります)。

どんな種類の助けも大歓迎です。私は一週間以上立ち往生しています。

前もってありがとう、ハリス

ps。ここでは arraylist を使用したくありません。本当に単純な array を使用する必要があります。

編集: ダミー データをテストし、別のアクティビティから 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): 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(ネイティブ メソッド) 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): at 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 に答える