0

だから私は何時間もこれにこだわっています。別のクラスでリストビューの画像をロードする非同期タスクをセットアップしようとしていますが、エラーを引き起こす情報を渡しています

どんな助けでも大歓迎です!

public class TheResults extends Activity {

public static final String DEFAULTNAME = "DefaultFile";
private GETTHEIMAGE imgFetch;
private ArrayList<Item_Info> Info = new ArrayList<Item_Info>();

String Data = null;
String THESTRING = null;
TextView httpStuff;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // full screen
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.theresults);

    SharedPreferences Search = getSharedPreferences(DEFAULTNAME, 0);
    Data = Search.getString("THERESULTS", null);
    GetINFO();
    populatelist();
}

private void GetINFO() {
    }
    }
}

private void populatelist() {
    ArrayAdapter<Item_Info> adapter = new TheListAdapter();
    ListView list = (ListView) findViewById(R.id.listings);
    list.findFocus();
    list.getWindowToken();
    list.setAdapter(adapter);
}

public class TheListAdapter extends ArrayAdapter<Item_Info> {
    public TheListAdapter() {
        super(TheResults.this, R.layout.items, Info);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View item_View = convertView;
        ImageHolder holder = null;

        if (item_View == null) {
            item_View = getLayoutInflater().inflate(R.layout.items, parent, false);
            Item_Info CurrentItem = Info.get(position);
            holder = new ImageHolder();
            holder.ICON_IMG = (ImageView)item_View.findViewById(R.id.icon_image);
            holder.ICON_IMG.setTag(CurrentItem.getItemPIC());
            Drawable MYIMG = imgFetch.GetTheImagedata(this, holder.ICON_IMG);

            holder.ICON_TITLE = (TextView)item_View.findViewById(R.id.icon_title);
            holder.ICON_TITLE.setText(CurrentItem.getItemTITLE());

            holder.ICON_LOCATION = (TextView)item_View.findViewById(R.id.icon_location);
            holder.ICON_LOCATION.setText(CurrentItem.getItemLOCATION());

            holder.ICON_PRICE = (TextView)item_View.findViewById(R.id.icon_price);
            if (CurrentItem.getItemPRICE() == null) {
                holder.ICON_PRICE.setText(CurrentItem.getItemPRICE());
                holder.ICON_PRICE.setBackgroundResource(R.drawable.tempbg);
            } else {
                holder.ICON_PRICE.setBackgroundResource(R.drawable.pricebg);
                holder.ICON_PRICE.setText(CurrentItem.getItemPRICE());
            }

            holder.ICON_DATE = (TextView)item_View.findViewById(R.id.icon_date);
            holder.ICON_DATE.setText(CurrentItem.getItemLOCATION());
        }else{
            holder = (ImageHolder)item_View.getTag();
        }
        return item_View;
    }
}
static class ImageHolder{
    ImageView ICON_IMG;
    TextView ICON_TITLE;
    TextView ICON_LOCATION;
    TextView ICON_PRICE;
    TextView ICON_DATE;
}

}

4

1 に答える 1

0

行の後のlogcatを見ることによって

06-21 19:15:06.887: E/AndroidRuntime(11408): FATAL EXCEPTION: main

は例外です

java.lang.NullPointerException

これは、何かがnull例外をスローしていることを示しています。プロジェクトを参照するコードの最初の行を探すと、問題が発生する場所がわかります。ここでは、たまたま logcat の次の行です

at com.clistc.TheResults$TheListAdapter.getView(TheResults.java:178)

これは、行が 178 of であり、メソッドTheResults.java内にあることを示しています。getView()この行であることを確認しました

Drawable MYIMG = imgFetch.GetTheImagedata(this, holder.ICON_IMG); 

つまり、imgFetchおそらくそれであり、変数が であるため、null返される関数を呼び出そうとします。その変数が何であるかはわかりませんが、この行の前に初期化されていませんnullnull

編集

imgFetchどこにも初期化されていません。ここで宣言されています

private GETTHEIMAGE imgFetch;

ただし、値を指定して初期化することはありません。次のようなことをする必要があります

private GETTHEIMAGE imgFetch = new GETTHEIMAGE();

空のコンストラクターがあると仮定します

于 2013-06-21T23:27:29.180 に答える