【发布时间】:2021-01-20 04:24:56
【问题描述】:
我有一个适配器,我正在创建edittext供用户动态输入数据。
现在,我必须将其存储在 JSONObject 中的键值对中吗? 我该怎么做?
我将所有创建的编辑文本存储在一个列表中
ArrayList<EditText> list = new ArrayList<>();
编辑部分
我正在将edittext添加到这样的列表中:
list.add(holder.editText);
编辑部分-结束
这是我的按钮点击监听代码:
addnewAcnt.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Toast.makeText(context, "INIT", Toast.LENGTH_SHORT).show();
JSONObject jsonObject2 = null;
for (int i = 0; i < count; i++)
{
jsonObject2 = new JSONObject();
try
{
jsonObject2.put(String.valueOf(list.get(i).getHint()), String.valueOf(list.get(i).getText()));
}
catch (Exception e)
{
e.printStackTrace();
Log.e("JsonToSendError: ", String.valueOf(e));
}
Log.e("JsonToSend: ", String.valueOf(jsonObject2));
}
}
});
我在 Log 中获取数据为:
2020-10-05 15:19:21.476 16462-16462/com.packagename E/JsonToSend:: {"Title":"StackOverFlow"}
2020-10-05 15:19:21.476 16462-16462/com.packagename E/JsonToSend:: {"URL":"www.stackoverflow.com"}
2020-10-05 15:19:21.476 16462-16462/com.packagename E/JsonToSend:: {"Username":"test"}
2020-10-05 15:19:21.476 16462-16462/com.packagename E/JsonToSend:: {"Password":"testtesttest"}
但是,我需要它位于单个对象中,例如:
{"Title":"StackOverFlow", "URL":"www.stackoverflow.com", "Username":"test", "Password":"testtesttest"}
任何帮助都会很有用。 请
【问题讨论】:
-
因为您在循环中创建新对象,请尝试在循环之前移动您的
jsonObject2 = new JSONObject();。 -
非常感谢,解决了所有问题,现在我无法获得最后一个对象的值
{"Title":"StackOverFlow", "URL":"www.stackoverflow.com", "Username":"test", "Password":""}
标签: android json android-studio android-json