Форум программистов, компьютерный форум CyberForum.ru

Передать данные из фрагмента в Dialog Fragment - Android

Восстановить пароль Регистрация
 
талраш
0 / 0 / 0
Регистрация: 26.02.2013
Сообщений: 30
08.10.2016, 11:03     Передать данные из фрагмента в Dialog Fragment #1
Всем привет. У меня вопрос: Как в диалогФрагмент передать данные из фрагмента. Нужно передать позицию выбранного элемента gridViev, и в зависимости от выбранного элемента взять данные из ArrayList<DataO>, который заполняется из json, чтобы заполнить диалог.
диалогФрагмент
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import android.app.DialogFragment;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.TextView;
 
import java.util.ArrayList;
 
 
public class Dialog1 extends DialogFragment implements OnClickListener {
    private TextView sumPrice;
    private OnFragmentInteractionListener mListener;
    public TextView pricemodal;
    public Button btnModal;
    public ImageView orderLogo;
    public TextView description;
    public ArrayList<DataO> dataOrder;
    public static Dialog1 newInstance(int index) {
        Dialog1 fragment = new Dialog1();
        Bundle args = new Bundle();
        args.putInt("index", index);
        fragment.setArguments(args);
        return fragment;
    }
    public int getIndex(){
        return getArguments().getInt("index",0);
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View modal = inflater.inflate(R.layout.modal_fragment, null);
        pricemodal =(TextView)modal.findViewById(R.id.priceModal);
        btnModal=(Button)modal.findViewById(R.id.btnmodal);
        orderLogo=(ImageView)modal.findViewById(R.id.imageModal);
        description=(TextView)modal.findViewById(R.id.descriptionModal);
        modal.findViewById(R.id.btnmodal).setOnClickListener(this);
        return modal;
    }
    public void UpdateDialog(){
        
    }
 
 
 
    public interface OnFragmentInteractionListener {
 
    }
    public void onClick(View v) {
        //sumPrice.setText("1");
        dismiss();
    }
    public void onDismiss(DialogInterface dialog) {
        super.onDismiss(dialog);
 
    }
    public void onCancel(DialogInterface dialog) {
        super.onCancel(dialog);
 
    }
 
}
Фрагмент из которого вызывается диалог.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
import android.app.DialogFragment;
import android.content.Context;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.GridView;
 
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
 
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
 
 
public class OrderFragment extends Fragment {
 
    DialogFragment modal;
    View view;
    DataAdapter OrAdapter;
    GridView gvOrder;
    protected static ArrayList<DataO> OrderData;
    int choiseIndex=0;
 
    private OnFragmentInteractionListener mListener;
 
    public static OrderFragment newInstance() {
        OrderFragment fragment = new OrderFragment();
        Bundle args = new Bundle();
        fragment.setArguments(args);
        return fragment;
    }
 
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
    }
    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putInt("curChoice", choiseIndex);
    }
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.fragment_order, container, false);
        modal=new Dialog1();
        new DataOInit().execute();
        return view;
    }
    public class DataOInit extends AsyncTask<Void, Void, String> {
 
        HttpURLConnection urlConnection = null;
        BufferedReader reader = null;
        String resultJson = "";
 
        @Override
        protected String doInBackground(Void... params) {
            // получаем данные с внешнего ресурса
            try {
                URL url = new URL(MainActivity.ARTICLE_URL);
 
                urlConnection = (HttpURLConnection) url.openConnection();
                urlConnection.setRequestMethod("GET");
                urlConnection.connect();
 
                InputStream inputStream = urlConnection.getInputStream();
                StringBuffer buffer = new StringBuffer();
 
                reader = new BufferedReader(new InputStreamReader(inputStream));
 
                String line;
                while ((line = reader.readLine()) != null) {
                    buffer.append(line);
                }
 
                resultJson = buffer.toString();
 
            } catch (Exception e) {
                e.printStackTrace();
            }
            return resultJson;
        }
 
        @Override
        protected void onPostExecute(String strJson) {
            super.onPostExecute(strJson);
 
            JSONObject dataJsonObj = null;
            OrderData = new ArrayList<>();
            String name,price,description,picture;
            int id;
 
            try {
                dataJsonObj = new JSONObject(strJson);
                JSONArray events = dataJsonObj.getJSONArray("events");
                for (int i = 0; i < events.length(); i++) {
                    JSONObject partnerItem = events.getJSONObject(i);
 
                    name = partnerItem.getString("name");
                    price = partnerItem.getString("price");
                    id = partnerItem.getInt("id");
                    description = partnerItem.getString("description");
                    picture = partnerItem.getString("picture");
                    OrderData.add(
                            new DataO(
                                    name,
                                    price,
                                    id,
                                    description,
                                    picture
                            )
                    );
 
                    setData();
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }
 
    private void setData() {
 
        if(OrderData!=null && OrderData.size()>0) {
            try {
                OrAdapter = new DataAdapter(getActivity(), OrderData);
                gvOrder = (GridView) view.findViewById(R.id.gridView);
                gvOrder.setAdapter(OrAdapter);
                gvOrder.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
 
                        /*DataO obj=OrderData.get(position);
                        String Name=obj.getName();
                        String Price=obj.getPrice();
                        String Description=obj.getDescription();
                        String Picture=obj.getPicture();
                        Bundle args = new Bundle();
                        args.putString(Name,Name);
                        args.putString(Price,Price);
                        args.putString(Description,Description);
                        args.putString(Picture,Picture);*/
                        showDialog(position);
                        modal.show(getFragmentManager(), "Dialog1");
 
                    }
                });
            } catch (NullPointerException ne) {
 
            }
        }
    }
    void showDialog(int index){
        choiseIndex=index;
        modal.show(getFragmentManager(), "Dialog1");
    }
 
    public void onButtonPressed(Uri uri) {
        if (mListener != null) {
            mListener.onFragmentInteraction(uri);
        }
    }
 
    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
 
    }
 
    @Override
    public void onDetach() {
        super.onDetach();
        mListener = null;
    }
 
    public interface OnFragmentInteractionListener {
        void onFragmentInteraction(Uri uri);
    }
 
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2016, 11:03     Передать данные из фрагмента в Dialog Fragment
Посмотрите здесь:

Android Передать данные из базы в ListView
Как поучить/передать данные в/из BroadcastReceiver ? Android
Android Как передать intent данные в Service?
Android Как передать данные в EditText
Android Не могу передать данные в другую Activity
Передать данные с сервиса на другой сервис Android
Android Передать данные из radiobutton
Передать данные из fragment в активити Android
Как передать данные в thread? Android
Передать данные в активити Android
Android Повторное создание фрагмента внутри фрагмента ViewPager
Android Передать данные из диалога

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OlegJV
 Аватар для OlegJV
99 / 99 / 29
Регистрация: 13.03.2016
Сообщений: 452
08.10.2016, 12:26     Передать данные из фрагмента в Dialog Fragment #2
Bundle
талраш
0 / 0 / 0
Регистрация: 26.02.2013
Сообщений: 30
08.10.2016, 12:35  [ТС]     Передать данные из фрагмента в Dialog Fragment #3
а поподробнее
shavuz
69 / 75 / 12
Регистрация: 29.01.2014
Сообщений: 347
11.10.2016, 10:58     Передать данные из фрагмента в Dialog Fragment #4
дата передается чере newinstance
вот тут гугл обьясняет: https://developer.android.com/refere.../Fragment.html
Yandex
Объявления
11.10.2016, 10:58     Передать данные из фрагмента в Dialog Fragment
Ответ Создать тему
Опции темы

Текущее время: 03:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru