当我试图从getter和setter类中获取值时,它将变为空。
在下面的代码中,请阅读我添加的注释,以获得解释。
我花了太多的时间在这上面而没有得到那里的问题…我被击中了!啊!
jst想要获取categoryID和文件,并将它们附加到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);
    }

}

如果可能的话,请更新我的代码。
提前谢谢!!!

最佳答案

正如在另一个答案中指出的,有两个不同的变量,它们只在单个字母的情况下有所不同-siteslist vs siteslist。这在java中是有效的,但这是一个非常糟糕的主意。这已经让大多数回答者和你自己感到困惑。
从删除不想使用的名称开始,或者如果两者都需要的话,将其中一个名称重命名为一个更清晰的名称,我认为这将使您的问题变得更加清楚。
您在此处设置了siteslist(大写'l'):

SitesList sitesList = null;

在这里之前不要做任何其他事情:
String categoryid = sitesList.getcategoryid().get(position).toString();

它没有变成null,从来不是别的。现在,您还对另一个名为siteslist(小写'l')的对象执行了一些操作,这就是您产生混淆的地方。

09-10 16:56