仅在ListView中获取姓氏对象名称

神秘

我是parsing这个JSON

{
"technology" : [

{
"title" : "Android",
"images" : [
{
"name" : "Android - I"
},
{
"name" : "Android - II"
},
{
"name" : "Android - III"
}
]
}

]
}

我分析technologyimagesJSON数组,但每当我在Android上做水龙头就在列表视图中获得最后一个对象名称,在这种情况下,“Android的- III”?

所以我可以知道是什么原因...吗?

TechnologyActivity.java:-

    JSONObject jsonObject = new JSONObject(data);
    JSONArray techArray = jsonObject.getJSONArray("technology");
        for(int i=0; i<techArray.length(); i++)
        {
            JSONObject jObject = techArray.getJSONObject(i);
            Technology tech = new Technology();
            tech.setTitle(jObject.getString("title"));
            Log.d("technology-title:", jObject.getString("title"));

            JSONArray imagesArray = jObject.getJSONArray("images");
              for(int j=0; j<imagesArray.length(); j++)
              {
                JSONObject imagesObject = imagesArray.getJSONObject(j);
                SubTech images = new SubTech();
                images.setName(imagesObject.getString("name"));
                Log.d("technology-name", imagesObject.getString("name"));

                arrayListImages = new ArrayList<SubTech>();
                arrayListImages.add(images);
                }
            tech.setImages(arrayListImages);
            arrayList.add(tech);
        }

SubTechActivity.java:-

public class SubTechActivity extends Activity {

    ArrayList<Technology> arrayList;
    Technology tech;
    SubTechAdapter adapter;
    ArrayList<SubTech> arrayListSubTech;
    int currentPosition ;

    @SuppressWarnings("unchecked")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_technology);

        Bundle bundle = getIntent().getExtras();

        arrayList = (ArrayList<Technology>) bundle.getSerializable("data");
        currentPosition = bundle.getInt("current");

        tech = arrayList.get(currentPosition);

        arrayListSubTech = tech.getImages();

        ListView listview = (ListView)findViewById(R.id.list);
        adapter = new SubTechAdapter(SubTechActivity.this, R.layout.adapter_technology, arrayListSubTech);

        listview.setAdapter(adapter);

    }
}
拉利特·波塔尼(Lalit Poptani)

之所以发生这种情况,是因为您每次都arrayListImages = new ArrayList<SubTech>();在for循环内创建一个新的实例时,应该只创建一次,而在循环外也要创建一次。

    arrayListImages = new ArrayList<SubTech>();

    for(int j=0; j<imagesArray.length(); j++)
        {
            JSONObject imagesObject = imagesArray.getJSONObject(j);
            SubTech images = new SubTech();
            images.setName(imagesObject.getString("name"));
            Log.d("technology-name", imagesObject.getString("name"));

            arrayListImages.add(images);
        }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章