Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 只有最后一个按钮是通过JSON响应创建的_Java_Android_Android Studio - Fatal编程技术网

Java 只有最后一个按钮是通过JSON响应创建的

Java 只有最后一个按钮是通过JSON响应创建的,java,android,android-studio,Java,Android,Android Studio,{ “标题”:“你已经有艺术作品了吗?”, “类型”:“按钮”, “唯一”:“\u 096”, “预选_值”:“, “条件_选项”:“, “条件_值”:“, “必需”:“打开”, “价值观”:[ { “键”:“是”, “价格”:” }, { “密钥”:“否”, “价格”:” } ] }, 这是我的JSON响应。我正在为值“是”、“否”创建按钮。我使用的代码如下所示 View option_spinner_layout = View.inflate(ProductView.this,R.layou

{ “标题”:“你已经有艺术作品了吗?”, “类型”:“按钮”, “唯一”:“\u 096”, “预选_值”:“, “条件_选项”:“, “条件_值”:“, “必需”:“打开”, “价值观”:[ { “键”:“是”, “价格”:” }, { “密钥”:“否”, “价格”:” } ] },

这是我的JSON响应。我正在为值“是”、“否”创建按钮。我使用的代码如下所示

View option_spinner_layout = View.inflate(ProductView.this,R.layout.option_spinner_layout,null);
     TextView opt_text = option_spinner_layout.findViewById(R.id.opt_text_name);
     if (optionData.has("required") && optionData.getString("required").equals("1"))
     opt_text.setText(optionData.getString("title") + "*");
     else
     opt_text.setText(optionData.getString("title"));
     Button but = option_spinner_layout.findViewById(R.id.but);
     LinearLayout layout = option_spinner_layout.findViewById(R.id.buttonlayout);
     JSONArray jsonArray =optionData.getJSONArray("values");
     for (int j = 0;j<jsonArray.length();j++)
     {
     JSONObject jsonObject=jsonArray.getJSONObject(j);
     if(jsonObject.has("key"))
     {
     String value = jsonObject.getString("key");
     but.setText(value);
     if(but.getParent() != null) {
     ((ViewGroup)but.getParent()).removeView(but); // <- fix
     }
     layout.addView(but);
     }
     }
     options_additional.addView(option_spinner_layout);
View option\u spinner\u layout=View.inflate(ProductView.this,R.layout.option\u spinner\u layout,null);
TextView opt_text=option_微调器_布局.findviewbyd(R.id.opt_text_名称);
if(optionData.has(“必需”)&optionData.getString(“必需”).等于(“1”)
opt_text.setText(optionData.getString(“title”)+“*”);
其他的
opt_text.setText(optionData.getString(“title”);
Button but=选项\u微调器\u布局.findViewById(R.id.but);
LinearLayout layout=选项\u微调器\u layout.findViewById(R.id.buttonlayout);
JSONArray JSONArray=optionData.getJSONArray(“值”);

对于(int j=0;j这里,您只需为您拥有的一个按钮分配值yes和no。您没有创建新按钮,因此,每个文本都设置为您的按钮,但只要有一个按钮,最后一个值就会覆盖该按钮。在这里,您要创建一个新按钮

在循环中添加

if(jsonObject.has("key"))
     {
     String value = jsonObject.getString("key"); 
     // set as your needs
     LayoutParams params = 
            new LinearLayout.LayoutParams(
                    LayoutParams.FILL_PARENT,
                    LayoutParams.WRAP_CONTENT);
     Button button = new Button(this);
     button.setText(value);
     button.setLayoutParams(params);
    layout.addView(button);
  }

在这里,您只需将一个按钮的值指定为“是”和“否”。您并没有创建一个新按钮,因此,每个文本都设置为您的按钮,但只要有一个按钮,最后一个值就会覆盖该按钮。在这里,您要创建一个新按钮

在循环中添加

if(jsonObject.has("key"))
     {
     String value = jsonObject.getString("key"); 
     // set as your needs
     LayoutParams params = 
            new LinearLayout.LayoutParams(
                    LayoutParams.FILL_PARENT,
                    LayoutParams.WRAP_CONTENT);
     Button button = new Button(this);
     button.setText(value);
     button.setLayoutParams(params);
    layout.addView(button);
  }