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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Загрузка ресурсов из модуля http://www.cyberforum.ru/android-dev/thread1821636.html
Здравствуйте! Есть "основной" файл программы под андроид на Eclipse MainActivity.java примерно следующего содержания: package ru.my.game; ... import ru.my.modul.MODUL; ... MODUL.LOADPNG(); ...
Android OnClickListner на кастомном listview Здравствуйте такой вопрос есть кастомный список его код: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" > <LinearLayout http://www.cyberforum.ru/android-dev/thread1821576.html
Android Программно изменить размер ImageView
public void displeisize() { DisplayMetrics displaymetrics = getResources().getDisplayMetrics(); int dissize= displaymetrics.widthPixels; strelkaview.setLayoutParams(new RelativeLayout.LayoutParams(dissize-80,dissize-80)); } Этим блоком кода изменить размер получилось, но картинка улетела вверх экрана
Массив картинок Android
Имеется 18 изображений в drawable. Создал строковый массив в виде ссылок на картинки <string-array name="cyPs"> <item>@drawable/Pic1</item> <item>@drawable/Pic2</item> </string-array> Узнал что есть TypedArray, а правильно реализовать не смог. Также есть класс Product
Android Закрывается приложение после ввода сообщения в EditText http://www.cyberforum.ru/android-dev/thread1821485.html
Написал программу, в которой при вводе в EditText значения 0 или 1 в TextView должно вывести определённое сообщение, но после ввода 0 или 1 и нажатии на кнопку приложение закрывается =/ Вот код приложения import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.EditText; import android.widget.TextView; public class...
Android Узнать углы положения смартфона в пространстве Как можно узнать углы положения смартфона в пространчтве? Без гироскопа и магнитного датчика. Это реально? Акселерометр полагаю в этом не поможет... подробнее

Показать сообщение отдельно
талраш
0 / 0 / 0
Регистрация: 26.02.2013
Сообщений: 33

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

08.10.2016, 11:03. Просмотров 261. Ответов 3
Метки (Все метки)

Всем привет. У меня вопрос: Как в диалогФрагмент передать данные из фрагмента. Нужно передать позицию выбранного элемента 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);
    }
 
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru