将JSON数据从一个片段传递到另一个片段的最佳方法是什么

醒来

我在第一个片段调用中有两个片段,AsyncTask并获取了一些json值。然后我想将JSON值传递给第二个片段的TextViews。在片段之间传递json值的最佳方法是什么?

这是我AsyncTaskFragment 1

class LoadingAccountEntry extends AsyncTask<String, String, String> {

        @Override
        protected void onPreExecute() {

        }

        @Override
        protected String doInBackground(String... args) {
            String response;

            Map<String, Object> data = new LinkedHashMap<String, Object>();
            data.put(SESSION, sessionId);
            data.put(MODULE_NAME, module_name);
            data.put(ID, entry_id != null ? entry_id : "");
            data.put(
                    SELECT_FIELDS,
                    (selectFields != null && selectFields.length != 0) ? new JSONArray(
                            Arrays.asList(selectFields)) : "");

            try {
                JSONArray nameValueArray = new JSONArray();
                if (linkNameToFieldsArray != null
                        && linkNameToFieldsArray.size() != 0) {
                    for (Entry<String, List<String>> entry : linkNameToFieldsArray
                            .entrySet()) {
                        JSONObject nameValue = new JSONObject();
                        nameValue.put("name", entry.getKey());
                        nameValue.put("value", new JSONArray(entry.getValue()));
                        nameValueArray.put(nameValue);
                    }
                }
                data.put(LINK_NAME_TO_FIELDS_ARRAY, nameValueArray);
                String restData = org.json.simple.JSONValue.toJSONString(data);

                HttpClient httpClient = new DefaultHttpClient();
                HttpPost req = new HttpPost(restURL);
                // Add your data
                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
                nameValuePairs.add(new BasicNameValuePair(METHOD, GET_ENTRY));
                nameValuePairs.add(new BasicNameValuePair(INPUT_TYPE, JSON));
                nameValuePairs.add(new BasicNameValuePair(RESPONSE_TYPE, JSON));
                nameValuePairs.add(new BasicNameValuePair(REST_DATA, restData));
                req.setEntity(new UrlEncodedFormEntity(nameValuePairs));

                // Send POST request
                httpClient.getParams().setBooleanParameter(
                        CoreProtocolPNames.USE_EXPECT_CONTINUE, false);
                HttpResponse res = httpClient.execute(req);
                response = EntityUtils.toString(res.getEntity());
                // Log.d("Responce", response.toString());

                if (response == null) {
                    Log.e("Error !", "faild to connect !");
                }

                JSONObject responseObj = new JSONObject(response);
                JSONArray jArray = responseObj.getJSONArray(ENTRY_LIST);

                for (int i = 0; i < jArray.length(); i++) {

                    JSONObject obj = jArray.getJSONObject(i);
                    // Log.d("obj", obj.toString());
                    // JSONObject objName = new JSONObject("name");
                    id = obj.getString("id");
                    Log.d("id", id);

                    JSONObject name_value_list = obj
                            .getJSONObject("name_value_list");

                    JSONObject assignedUserName = name_value_list
                            .getJSONObject("assigned_user_name");
                    assigned_user_name = assignedUserName.getString("value");
                    Log.d("assigned_user_name", assigned_user_name);

                    JSONObject modifiedByName = name_value_list
                            .getJSONObject("modified_by_name");
                    modified_by_name = modifiedByName.getString("value");
                    Log.d("modified_by_name", modified_by_name);


                }

            } catch (JSONException e) {

            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(String result) {

        }

Fragment 2

public class Fragment_account_details extends Fragment {

    TextView name, officePhone,fax;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_account_details, container,false);

        name = (TextView) rootView.findViewById(R.id.text_name);
        fax = (TextView) rootView.findViewById(R.id.text_fax);


        return rootView;


    }
萨尔

您可以使用bundle将数据传递给Fragment_account_details,如下所示:

            Fragment fragment = new Fragment_account_details();
            Bundle bundle = new Bundle();
            bundle.putString("name", name);
            fragment.setArguments(bundle);

现在在您的Fragment_account_details onCreateView中,您可以执行以下操作:

  String name= getArguments().getString("name");

像这样你可以传递值。希望这会有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将数据从一个片段传递到另一个片段

将 Spinner 值从一个片段传递到另一个片段

将数据从一个活动片段传递到另一个活动片段

将数据从一个片段传递到另一个片段时无法正常工作

在 Xamarin 中将数据从一个视图传递到另一个视图的最佳方法是什么?

如果一次可见两个片段,如何将数据从一个片段传递到另一个片段

尝试显示从一个片段到另一个片段的传递对象的数据时出现 NullPointerException

无法将字符串值从一个片段传递到另一个片段

如何将HashSet对象从一个片段传递到android中的另一个片段

将长值从一个片段通过主活动传递到另一个片段

如何从一个片段到另一个片段获取捆绑数据?

无法从一个片段接收数据到另一个片段

将数据从片段传递到另一个片段

无法通过navController的setGraph中的包将数据从一个片段传递到另一个片段

将片段状态/数据从一个片段保存到另一个片段

将数据从片段传递到另一个片段。未附加到上下文的片段

如何使用Bundle()将值从1个片段传递到另一个片段?

从一个片段到另一个片段的交易问题

如何将数据从一个片段传递到xml中定义的子片段?

无法将数据传递到Android(Kotlin)中的另一个片段

如何将数据从片段传递到另一个-Android

最佳实践MVVM将数据从一个活动传递到另一个活动

以角度将数据从一个组件传递到另一个组件的最佳实践

如何将数据从一个片段传递到上一个片段?

使用Android中的ViewModel将数据与带有recyclerview的片段传递到另一个片段

如何调用另一个片段通过的onClick在片段的方法是什么?

将变量从一个Swift类传递到另一个的最佳方法?

将动作按钮输入从一个模块传递到另一个模块的最佳方法

将string.xml中的值从一个片段传递到另一活动?