Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
disx
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 563
Записей в блоге: 1
#1

Как передавать динамические данные (координаты GPS) из активити в диалог? - Программирование Android

02.02.2016, 08:43. Просмотров 675. Ответов 19
Метки нет (Все метки)

Здравствуйте Уважаемые!

подскажите пожалуйста, есть класс активити в котором описана работа с GPS, и мне нужно вызывать диалог в котором будут отображаться постоянно меняющиеся координаты, как это сделать, через что(с помощью чего) их передавать?


Спасибо!
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.02.2016, 08:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как передавать динамические данные (координаты GPS) из активити в диалог? (Программирование Android):

Убрать диалог о включении GPS и иконку GPS. Тихий запуск GPS - Программирование Android
Здравствуйте! Подскажите есть ли возможность включить GPS в тихом режиме, чтобы пользователь не догадался об этом! На данном...

Как вернуть результат в активити включил юзер gps или нет? - Программирование Android
Как вернуть результат в активити включил юзер gps или нет?

GPS Location (GPS_PROVIDER) как получить координаты - Программирование Android
Всем привет. Столкнулся с такой проблемой , может еще кто то сталкивался да знает что да как . Вообщем тестя получение latitude и...

Отправка данных из dialogfragment в активити в котором был создан диалог - Программирование Android
Здравствуйте. Нужна помощь. Как сделать так что при нажатии кнопки btnmodal в диалоге, в активити, которая вызвала диалог менялась текствью...

Как передавать данные через USB - Программирование Android
Цель заключается в том, чтобы на компьютере вводилось число, которое потом отображается на телефоне язык какой угодно.

Как записать данные GPS в файл? - Программирование Android
Уже более суток сижу катаю дипломную работу. Суть такова, для начала мне нужно снять показания с датчика Акселерометра(это я сделал) и ...

19
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
02.02.2016, 12:10 #2
disx, добрый день!
Подскажите, а диалог будет постоянно обновлять данные, пока показывается?
Если не забыл, данные можно передавать через setArguments.
0
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 1
02.02.2016, 12:12 #3
почему не сделать диалог слушателем для приема координат?
0
disx
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 563
Записей в блоге: 1
02.02.2016, 12:44  [ТС] #4
CoolMind,
Подскажите, а диалог будет постоянно обновлять данные, пока показывается?
именно так, а setArguments это чей метод ?

Паблито,
почему не сделать диалог слушателем для приема координат?
как это, если подробно получится пояснить, то возможно подойдет,

т.е. нужно чтоб после вызова DialogFragment'a в нем отображались все изменения координат из активити в реальном времени?
0
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 1
02.02.2016, 12:49 #5
а почему сейчас активити слушает координаты, они ей нужны?
все те имплементации интерфейсов для приема координат можно просто реализовать в этом фрагменте
что тут еще подробно объяснять
0
_Night_Scream_
76 / 75 / 8
Регистрация: 08.08.2013
Сообщений: 612
02.02.2016, 12:53 #6
диалог случайно не AlertDialog?
0
disx
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 563
Записей в блоге: 1
02.02.2016, 13:24  [ТС] #7
Паблито,
они ей нужны?
нужны для отображения местоположения на карте и статусов точности...

а в диалоге нужно чтоб дублировались данные когда он Resumed?

_Night_Scream_, не ..., DialogFragment.
0
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 1
02.02.2016, 13:34 #8
да можно по разному делать
1. когда прилетают новые координаты в активити - она вызывает какой-то метод у фрагмента и передает туда эти координаты, но перед вызовом надо проверять на null на всяки пожарный

2. повесить слушатель координат не только на активити, но и на фрагмент

но я бы делал первый вариант
0
disx
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 563
Записей в блоге: 1
02.02.2016, 13:46  [ТС] #9
Паблито, да первый вариант и нужен,

она вызывает какой-то метод у фрагмента
вот я и не могу этого понять, какой метод (что он должен делать) и как активити его вызовет (если изменятся значения Longtitude и Latitude), или как?
0
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 1
02.02.2016, 13:52 #10
пишется свой класс, наследник от DialogFragment
в нем делается метод, например
Java
1
2
3
public void updateCoords(double latitude, double longitude) {
       textView.setText(latitude + "     " + longitude); // упрощенный пример
}
при создании диалог фрагмента, запоминаем ссылку на него и в методе активити, где прилетают координаты, вызываем
Java
1
if (dialog != null && dialog.isShowing()) dialog.updateCoords(long, lat); // или как там переменные называются
0
disx
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 563
Записей в блоге: 1
02.02.2016, 15:05  [ТС] #11
Паблито, не дорубаю до конца

вот DialogFragment:
Кликните здесь для просмотра всего текста
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
public class GetDialGPS extends DialogFragment{
    
    TextView textView;
 
 
    public GetDialGPS() {
        // Empty constructor required for DialogFragment
    }
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.getdialgps, container, false);
        textView = (TextView)view.findViewById(R.id.textView1); //сюда надо дать координаты из активити
//updateCoords();
 
        return view;
    }
 
    public void updateCoords(double latitude, double longitude) {
        textView.setText(latitude + "     " + longitude); // упрощенный пример
    }
 
 
}


вот Activity:
Кликните здесь для просмотра всего текста
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
public class MainActivity extends AppCompatActivity {
    android.support.v4.app.DialogFragment dlg1;
    private LocationManager manager;
    private TextView text;
    Button bt;
    GetDialGPS dialog;
    private LocationListener locListaner = new LocationListener() {
 
        public void onLocationChanged(Location argLocation) {
            printLocation(argLocation);
        }
 
        @Override
        public void onProviderDisabled(String arg0) {
            printLocation(null);
        }
 
        @Override
        public void onProviderEnabled(String arg0) {}
 
        @Override
        public void onStatusChanged(String arg0, int arg1, Bundle arg2) {}
    };
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        dlg1 = new GetDialGPS();
bt = (Button)findViewById(R.id.button);
 
        text = (TextView)findViewById(R.id.text);
 
        manager = (LocationManager)getSystemService(
                Context.LOCATION_SERVICE);
        manager.requestLocationUpdates(
                LocationManager.GPS_PROVIDER, 0, 0, locListaner);
 
        Location loc = manager.getLastKnownLocation(
                LocationManager.GPS_PROVIDER);
        printLocation(loc);
    }
 
    private void printLocation(Location loc) {
        if (loc != null)
        {
            text.setText("Longitude:\t" + loc.getLongitude() +
                    "\nLatitude:\t" + loc.getLatitude());
 
            if (dialog != null && dialog.isVisible()) dialog.updateCoords(loc.getLongitude(), loc.getLatitude());
        }
        else {
            text.setText("Location unavailable");
        }
    }
 
    public  void onClick (View v){
        dlg1.show(getSupportFragmentManager(), "dlg1");
    }
}


где туплю как сделать?
0
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 1
02.02.2016, 16:01 #12
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Java
1
2
3
public void onLocationChanged(Location argLocation) {
            printLocation(argLocation);
        }
этот метод выводит координаты которые изменяются? если он работает то вместо этой строчки или после пишем
Java
1
if (dlg1!= null && dlg1.isShowing()) dlg1.updateCoords(argLocation.getLongtitude(), argLocation.getLatitude());
1
disx
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 563
Записей в блоге: 1
02.02.2016, 16:42  [ТС] #13
Паблито, Респект тебе и уважуха,... а про такой способ передачи данных в диалог вообще не знал, так работает:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 private void printLocation(Location argLocation) {
        //printLocation(argLocation);
        if (argLocation != null)
        {
            text.setText("Longitude:\t" + argLocation.getLongitude() +
                    "\nLatitude:\t" + argLocation.getLatitude());
 
            if (dlg1 != null && dlg1.isVisible()) {
                dlg1.updateCoords(argLocation.getLongitude(), argLocation.getLatitude());
            }
        }
        else {
            text.setText("Location unavailable");
        }
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
02.02.2016, 16:51 #14
Цитата Сообщение от disx Посмотреть сообщение
такой способ передачи данных в диалог
не лучший, насколько я правильно помню. Передача данных между Activity и Fragment предпочтительно должна строиться на Listener'ах. Поэтому вы о нём и не знали.
1
disx
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 563
Записей в блоге: 1
02.02.2016, 17:02  [ТС] #15
CoolMind,
Передача данных между Activity и Fragment предпочтительно должна строиться на Listener'ах
если есть возможность дополнить эту тему Вашим примером был бы очень рад узнать и о таком способе?
0
02.02.2016, 17:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.02.2016, 17:02
Привет! Вот еще темы с ответами:

Как передавать данные из сайта на приложение Android? - Программирование Android
Нужно делать приложение для интернет-магазина, но я не знаю как данные сайта передать в приложение. Как в Aliexpress: Все товары...

Как вызвать метод в активити классе из обычного не активити класса? - Программирование Android
Есть активити в котором вводятся логин и пароль. При нажатии кнопки "войти" в отдельном классе "сокетсервер"(+в отдельном потоке)...

GPS координаты - Программирование Android
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ...

Как сделать, чтобы данные, введенные в EditText, сохранялись и пополнялись в новом активити? - Программирование Android
как сделать что бы данные введенные в EditText сохранялись и пополнялись в новом активити... Идея такая: вводим текст в edittext...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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