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