当我尝试从中获取值时,getter和setter类变为NULL。 在下面的代码中,plz阅读评论,我补充说,为解释。 我花了太多时间在上面而没有弄到那里的问题......我很震惊! 我想获取CategoryID和File并将它们附加到URL以在ListView的每一行上显示缩略图。 我做了很多次改变但没有工作......
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和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 :(得分:2)
正如另一个答案中所指出的,你有两个不同的变量,只有一个字母的情况不同 - sitesList vs siteslist。这在Java中是有效的,但是一个非常糟糕的主意。它已经让大多数回答者和你自己感到困惑。
首先删除您不想使用的那个,或者,如果两者都需要,请将其中一个重命名为更明确的名称,我认为它会更清楚您的问题所在。< / p>
您可以在此设置sitesList(大写&#39; L&#39;):
SitesList sitesList = null;
在此之前不要做任何其他事情:
String categoryid = sitesList.getcategoryid().get(position).toString();
它没有成为null
,它绝不是别的。现在你也在用另一个名为siteslist的对象做一些事情(小写&#39; L&#39;),这是你发生混乱的地方。
答案 1 :(得分:1)
siteList
null
尝试在之前对其进行初始化:
public ArrayList<String> siteslist = new ArrayList<String>();
答案 2 :(得分:1)
巴迪,这有效吗?
SitesList sitesList = null;
public ArrayList<String> siteslist;
两个变量的名称相同吗?
你制造了两个含糊不清的变量......不是很好。
其中一个是NULL
。
答案 3 :(得分:1)
是sitelist还是sitesList.getcategoryid()。变为NULL?
编辑: 问题是你有两个变量siteslist和sites * L * ist。
您尚未为网站* L * ist设置任何值,因此它仍为NULL。不要使用这样的变量名。 :o