Android 当数据来自JSON解析时,如何动态设置水平滚动中textview的数量?
我通过URL获取JSON数据,并将其显示在水平滚动视图内的文本视图中Android 当数据来自JSON解析时,如何动态设置水平滚动中textview的数量?,android,json,Android,Json,我通过URL获取JSON数据,并将其显示在水平滚动视图内的文本视图中 JSONArray ja = response.getJSONArray("results"); ArrayList<Details> myModelList = new ArrayList<Details>(); for (int i = 0; i < ja.length(
JSONArray ja = response.getJSONArray("results");
ArrayList<Details> myModelList = new ArrayList<Details>();
for (int i = 0; i < ja.length(); i++) {
JSONObject jsonObject = ja.getJSONObject(i);
mymodel = new Details();
mymodel.id = Integer.parseInt(jsonObject.optString("id").toString());
mymodel.url = jsonObject.getString("resLink");
mymodel.resType = jsonObject.getString("resType");
mymodel.name = jsonObject.getString("resName");
myModelList.add(mymodel);
setData(myModelList);
JSONArray ja=response.getJSONArray(“结果”);
ArrayList myModelList=新建ArrayList();
对于(int i=0;i
我在文本视图中显示数据,但它仅显示第一个数据
private void setData(List<Details> mList) {
for (int i =0; i <=mymodel.getResType().length();i++)
{
TextView textView = (TextView) findViewById(R.id.textView);
textView.setText(mymodel.getResType());
}
private void setData(列表mList){
for(int i=0;i您在for循环中一次又一次地初始化mymodel,因此我认为它只包含一个值,也是最后一个值(不是第一个值)
如果这就是问题所在,请尝试在for循环外部声明以下内容
mymodel=new Details();所以代码中有很多问题:
(一)您总是替换同一TextView
的文本。通常使用滚动视图,您可以使用适配器对其进行备份,将数据放入列表,然后添加到适配器,然后依靠滚动列表动态创建可以填充的TextView
。如果您的sc中有已知数量的视图滚动视图,若要避免适配器,请确保它们都具有唯一的ID,以便您可以找到它们
2) 第二个问题是你在循环中调用你的setData
。先完成循环,然后调用你的方法(尽管如果你做了适配器的事情,你实际上不需要这么做)
3) 你的setData
方法有各种各样的错误。如果你想把一个列表传递给一个方法,然后迭代它,你可以这样做:
for (Details d : list) {
TextView textView = (TextView) findViewById(R.id.textView);
textView.setText(d.getResType());
}
但正如我所说,这本身可能对您没有帮助。请查看滚动列表或回收器视图和适配器的文档。有很多示例可供使用。好吧,您为每个I设置了相同的文本,您期望得到什么?mymodel.getResType()
始终在不更改对象时返回相同的内容mymodel
。您在迭代什么?for循环用于什么?mymodel
对象是什么?我正在更新问题