有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用For循环将不同LiearLayout中的名称与DB分离

我正在尝试拆分数据库中使用for循环的名称,并将每个名称添加到不同的LinearLayout,现在我得到了一个名称,但如果我尝试对象显示完整数组但不拆分名称,则看不到更多名称

public void onResponse(String response) {
                Log.e("Response: ", response.toString());

                try {
    JSONObject jObj = new JSONObject(response);
                        String getObject = jObj.getString("name");
                        JSONArray jsonArray = new JSONArray(getObject);

            for (int i = 0; i < jsonArray.length(); i++) {
                                    JSONObject jsonObject = jsonArray.getJSONObject(i);

                                    StringBuilder sb = new StringBuilder();

                                    Log.d("myTag",""+jsonArray);

                                    title = jsonObject.getString(TITLE);
                                    sb.append(jsonArray.getString(i));
                                    mValue.setText(sb.toString());
                                    mValue.setId(i);

                                    //ADD text View to Linear Layout
                                    ((LinearLayout) linear).removeAllViews();
                                    ((LinearLayout) linear).addView(mValue);
        }

共 (1) 个答案

  1. # 1 楼答案

    public void onResponse(String response) {
                    Log.e("Response: ", response.toString());
    
                    try {
        JSONObject jObj = new JSONObject(response);
                            String getObject = jObj.getString("name");
                            JSONArray jsonArray = new JSONArray(getObject);
                ((LinearLayout) linear).removeAllViews();
                for (int i = 0; i < jsonArray.length(); i++) {
                                        JSONObject jsonObject = jsonArray.getJSONObject(i);
    
                                        StringBuilder sb = new StringBuilder();
    
                                        Log.d("myTag",""+jsonArray);
    
                                        title = jsonObject.getString(TITLE);
                                        sb.append(jsonArray.getString(i));
                                        //The line below creates a new textview
                                        TextView mValue = new TextView(this);
                                        mValue.setText(sb.toString());
                                        mValue.setId(i);
    
                                        //ADD text View to Linear Layout
    
                                        ((LinearLayout) linear).addView(mValue);
            }
    

    您正在从for循环的每个循环中的LinearLayout中删除所有视图。从for循环中取出((LinearLayout) linear).removeAllViews();行,就像我在上面发布的那样

    编辑:查看更新的代码。之所以会出现这种情况,是因为每次需要在for循环中创建一个新的textview时,您都试图重用textview