2011-12-01 74 views
2

getter和setter類中獲得價值正在成爲空當我嘗試獲取值形成的。 在下面的代碼中,PLZ閱讀了註釋,我已經添加了解釋。 我花了太多時間在它上面,沒有得到最新的問題......我被擊中了! 我想獲得CategoryID和文件,並將它們附加到URL以在我的ListView的每一行上顯示縮略圖。 我已經做了修改很多次,但沒有工作...空指針Expetion從

public class MySimpleArrayAdapter extends ArrayAdapter<String> 
{ 

////** Create Object For SiteList Class */ 
SitesList sitesList = null; //////// This is my Custom SitesList Class that contains ArrayLists 

public Context context; 
public ArrayList<String> siteslist; 

public MySimpleArrayAdapter(Context context, ArrayList<String> siteslist) 
{ 
    super(context, R.layout.row, R.id.tv_label, siteslist); 
    this.context = context; 
    this.siteslist = siteslist; //////// Uptill here, the Siteslist is picking all desired values and storing in it 
} 

public View getView(int position, View convertView ,ViewGroup parent) 
{ 
    View v = convertView; 

    if(v == null) 
    { 
     LayoutInflater inflator = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     v= inflator.inflate(R.layout.row, null); 
    } 

    TextView tv_name = (TextView) v.findViewById(R.id.tv_label); 
    tv_name.setText(siteslist.get(position)); 

    ImageView thumbnail = (ImageView) v.findViewById(R.id.iv_left); 

    //////// But here the sitesList becomes **NULL** 
String categoryid = sitesList.getcategoryid().get(position).toString(); 

    final String url = "http://dev.takkekort.no/page/designer/masks/" + categoryid +"/front/landscape/" + file ; 

////////////// I want to use the above String url in the GetImage Class below to fetch each image and show it as a thumbnail in the listview. 

    new GetImage(url).execute(thumbnail); 

    return v; 
} 
} 

這裏是我的SitesList類,它包含的getter ANS setter方法

/** Contains getter and setter method for varialbles */ 
public class SitesList 
{ 

    /** Variables */ 
    public ArrayList<String> categoryid = new ArrayList<String>(); 

    /** 
    * In Setter method default it will return arraylist change that to add 
    */ 

    public ArrayList<String> getcategoryid() ////////// Category ID 
    { 
     return categoryid; 
    } 

    public void setcategoryid(String categoryid) 
    { 
     this.categoryid.add(categoryid); 
    } 

} 

如果可能的話請更新我的代碼。

在此先感謝!

+0

是喲,你肯定getcategoryid()是ArrayList的的方法是什麼? – Maep

+0

是的,我已經在我的Siteslist班組長加入這種方法 公衆的ArrayList getcategoryid()\t //////////類別ID \t { \t \t回類別ID; \t} – Noman

回答

2

正如另一個答案指出,你有不同之處僅在一個單個字母的情況下,兩個不同的變量 - sitesList VS siteslist。這在Java中是有效的,但是一個非常糟糕的主意。它已經讓大多數答覆者和你自己都感到困惑。

開始通過刪除你不希望使用或者,如果兩者都需要,重新命名其中的一個更鮮明的名字,我覺得您的問題是,它會變得更加清晰的一個。

您設置sitesList(大寫 'L')位置:

SitesList sitesList = null; 

,不要做別的用它,直到在這裏:

String categoryid = sitesList.getcategoryid().get(position).toString(); 

它並沒有成爲null,它是從來沒有別的。現在,您還正在使用名爲siteslist的另一個對象(小寫'L'),這是您發生混淆的地方。

+0

@ goto10 ...可以üPLZ編輯我的上面的代碼 – Noman

+0

沒有足夠的信息來做到這一點。 SitesList是你的自定義類,你沒有分享代碼,所以我不能告訴你如何正確使用它。 – goto10

+0

@ goto10 ...我在我的問題中添加了我的SitesList類 – Noman

1

siteListnull嘗試之前初始化:

public ArrayList<String> siteslist = new ArrayList<String>(); 
1

好友,這是有效的?

SitesList sitesList = null; 
public ArrayList<String> siteslist; 

兩個變量的名字相同嗎?

你做兩個曖昧變量......不好一個。 其中之一是NULL

1

它是站點列表或sitesList.getcategoryid()。那變成了NULL?

編輯: 問題是你有兩個變量網站列表和網站* L * ist。

您還沒有爲網站設置任何值* L * ist,所以它仍然是NULL。不要使用那樣的變量名稱。 :o

+0

siteslist變爲NULL – Noman

+0

它不是「siteslist」,它變成NULL,「sitesList」變成(或者總是)NULL –