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

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

Войти
Регистрация
Восстановить пароль
 
 
vescovood
2 / 2 / 0
Регистрация: 02.07.2015
Сообщений: 24
#1

Выбор главного Activity через пользовательские настройки или геолокации - Android

02.07.2015, 20:23. Просмотров 906. Ответов 30
Метки нет (Все метки)

помогите пожалуйста кодом... вообще не понимаю как работать с преференсес нет хватает ума напписать...
1.При первом запуске приложения на устройстве выводить Activity с возможностью выбора страны(желательно через button) (не локализация - разница в контенте).

2.При выборе сохраняются настройки, и при последующих запусках будет запускать выбранное Activity по стране.

3.Возможность менять в настройках выводимое Activity.

Это вообще возможно?
Нужно что бы пользователь сам выбирал себе одно из 2-3 Activity, которые отличаются только контентом.

или может какие нибудь альтернативные варианты, например геопозиция ????
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2015, 20:23     Выбор главного Activity через пользовательские настройки или геолокации
Посмотрите здесь:

Пользовательские шрифты через .xml Android
Как сохранить настройки в одном Activity и получить в другом? Android
Android Новое Activity или ViewGroup
Android Возможен ли двойной парсинг в Activity или это неправильно?
Способ перехода к другому Activity через перемещение пальцем Android
Переход между Activity через заданное время. Как лучше? Android
Переход на новое activity с элемента listView, заполненного через SimpleCursorAdapter Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
03.07.2015, 10:02     Выбор главного Activity через пользовательские настройки или геолокации #2
Создание Activity, которая запускается только при первом запуске
vescovood
2 / 2 / 0
Регистрация: 02.07.2015
Сообщений: 24
03.07.2015, 13:32  [ТС]     Выбор главного Activity через пользовательские настройки или геолокации #3
Rube, это не то, речь не о выводе активи единоразово... а о активи с выбором 2-3 активити+сохранение выбора и при перезапуске что бы запускалось выбранное активи
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
03.07.2015, 14:03     Выбор главного Activity через пользовательские настройки или геолокации #4
vescovood, ну делай 3 флага.
vescovood
2 / 2 / 0
Регистрация: 02.07.2015
Сообщений: 24
03.07.2015, 14:26  [ТС]     Выбор главного Activity через пользовательские настройки или геолокации #5
Так проблема в том что не знаю как сделать это. Уже и код готов купить... Мне сказали что через shared preferences но как реализовать даже представления нет

Добавлено через 20 минут
можешь помочь пожалуйста с кодом????
Spelcrawler
523 / 493 / 111
Регистрация: 12.03.2014
Сообщений: 1,646
Завершенные тесты: 1
03.07.2015, 16:11     Выбор главного Activity через пользовательские настройки или геолокации #6
vescovood, это прям полностью разные активити или просто, к примеру, разные новости, но вывод в одни и те же элементы?
vescovood
2 / 2 / 0
Регистрация: 02.07.2015
Сообщений: 24
03.07.2015, 16:51  [ТС]     Выбор главного Activity через пользовательские настройки или геолокации #7
Я бы хотел разные активити, тк приложение уже готово, но можно и через фрагменты(если Вы об этом).
Spelcrawler
523 / 493 / 111
Регистрация: 12.03.2014
Сообщений: 1,646
Завершенные тесты: 1
03.07.2015, 17:11     Выбор главного Activity через пользовательские настройки или геолокации #8
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
    public static final int SCREEN_NONE = -1;
    public static final int SCREEN_FIRST = 0;
    public static final int SCREEN_SECOND = 1;
    public static final int SCREEN_THIRD = 2;
    
    public static final String PREFERENCES_NAME = "settings";
    public static final String SCREEN_PARAM = "screen";
    
    //В активити, где выбираешь город.
    private void setScreen(int screen){
        SharedPreferences preferences = getSharedPreferences(PREFERENCES_NAME, MODE_PRIVATE);
        SharedPreferences.Editor editor = preferences.edit();
        editor.putInt(SCREEN_PARAM, screen);
        editor.apply();
    }
    //В стартовой активити.
    private int getScreen(){
        SharedPreferences preferences = getSharedPreferences(PREFERENCES_NAME, MODE_PRIVATE);
        return preferences.getInt(SCREEN_PARAM, SCREEN_NONE);
    }
    
    private void runScreen(){
        Intent intent = new Intent();
        
        switch (getScreen()){
            case SCREEN_NONE:
                intent.setClass(this, ChooseScreenActivity.class);
                break;
            case SCREEN_FIRST:
                intent.setClass(this, FirstScreen.class);
                break;
            case SCREEN_SECOND:
                intent.setClass(this, SecondScreen.class);
                break;
            case SCREEN_THIRD:
                intent.setClass(this, ThirdScreen.class);
                break;
            default:
                return;
        }
        
        startActivity(intent);        
    }

В стартовой активити (splash) проверяем какой выбран экран, если он вообще не выбран переходим к экрану выбора, если выбран - к выбранному.
vescovood
2 / 2 / 0
Регистрация: 02.07.2015
Сообщений: 24
03.07.2015, 22:02  [ТС]     Выбор главного Activity через пользовательские настройки или геолокации #9
спасибо. как доберусь до пк сразу попробую и отпишусь...заранее спасибо=)

Добавлено через 3 часа 17 минут
Spelcrawler, я наверно уже надоел Вам, но что прописать в ChooseScreenActivity.xml и pref.xml?)
Spelcrawler
523 / 493 / 111
Регистрация: 12.03.2014
Сообщений: 1,646
Завершенные тесты: 1
03.07.2015, 22:16     Выбор главного Activity через пользовательские настройки или геолокации #10
vescovood, всмысле? ChooseScreenActivity.xml это файл разметки вашей активити, где выбираете город. А что такое pref.xml?
vescovood
2 / 2 / 0
Регистрация: 02.07.2015
Сообщений: 24
03.07.2015, 23:26  [ТС]     Выбор главного Activity через пользовательские настройки или геолокации #11
Spelcrawler, ChooseScreenActivity.xml по вашему коду, а активити выбора пустой... Весь код вставил в ChooseScreenActivity.class... или что то не то делаю? у Вас есть готовый exapmle? можете скинуть на почту? деградирую....
Mikalai
254 / 230 / 93
Регистрация: 11.01.2015
Сообщений: 649
03.07.2015, 23:37     Выбор главного Activity через пользовательские настройки или геолокации #12
Цитата Сообщение от vescovood Посмотреть сообщение
Я бы хотел разные активити, тк приложение уже готово, но можно и через фрагменты(если Вы об этом).

Не по теме:


интересно что там за приложение такое ))

vescovood
2 / 2 / 0
Регистрация: 02.07.2015
Сообщений: 24
03.07.2015, 23:45  [ТС]     Выбор главного Activity через пользовательские настройки или геолокации #13
та простое, учусь, что то получается, что то нет...
Spelcrawler
523 / 493 / 111
Регистрация: 12.03.2014
Сообщений: 1,646
Завершенные тесты: 1
04.07.2015, 00:01     Выбор главного Activity через пользовательские настройки или геолокации #14
vescovood, ну там как бы я не весь код приложения написал, а именно сохранение выбора и переключение активити в зависимости от выбора.
vescovood
2 / 2 / 0
Регистрация: 02.07.2015
Сообщений: 24
04.07.2015, 00:04  [ТС]     Выбор главного Activity через пользовательские настройки или геолокации #15
Spelcrawler, а можете еще помочь с XML (выбор активити), что бы выбор и сохранение работало, я буду чрезмерно благодарен =)
Spelcrawler
523 / 493 / 111
Регистрация: 12.03.2014
Сообщений: 1,646
Завершенные тесты: 1
04.07.2015, 12:04     Выбор главного Activity через пользовательские настройки или геолокации #16
Цитата Сообщение от vescovood Посмотреть сообщение
а можете еще помочь с XML (выбор активити), что бы выбор и сохранение работало, я буду чрезмерно благодарен =)
Ну рисуйте там 3 кнопки, на нажатие вешайте сохранение экрана и переход на нужный экран.
vescovood
2 / 2 / 0
Регистрация: 02.07.2015
Сообщений: 24
05.07.2015, 17:51  [ТС]     Выбор главного Activity через пользовательские настройки или геолокации #17
что то я понять не могу(

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
package com.example.mojo.testpref;
 
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
 
 
public class mainActivity extends ActionBarActivity {
 
    public static final int SCREEN_NONE = -1;
    public static final int SCREEN_FIRST = 0;
    public static final int SCREEN_SECOND = 1;
    public static final int SCREEN_THIRD = 2;
 
    public static final String PREFERENCES_NAME = "settings";
    public static final String SCREEN_PARAM = "screen";
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_first);
    }
 
    //В активити, где выбираешь город.
    private void setScreen(int screen){
        SharedPreferences preferences = getSharedPreferences(PREFERENCES_NAME, MODE_PRIVATE);
        SharedPreferences.Editor editor = preferences.edit();
        editor.putInt(SCREEN_PARAM, screen);
        editor.apply();
    }
    //В стартовой активити.
    private int getScreen(){
        SharedPreferences preferences = getSharedPreferences(PREFERENCES_NAME, MODE_PRIVATE);
        return preferences.getInt(SCREEN_PARAM, SCREEN_NONE);
    }
 
    private void runScreen(){
        Intent intent = new Intent();
 
        switch (getScreen()){
            case SCREEN_NONE:
                intent.setClass(this, mainActivity.class);
                break;
            case SCREEN_FIRST:
                intent.setClass(this, firstActivity.class);
                break;
            case SCREEN_SECOND:
                intent.setClass(this, secondActivity.class);
                break;
            case SCREEN_THIRD:
                intent.setClass(this, thirdActivity.class);
                break;
            default:
                return;
        }
 
        startActivity(intent);
    }
 
    public void Button1(View view) {
        Intent intent = new Intent(this, firstActivity.class);
        startActivity(intent);
 
    }
    public void Button2(View view){
        Intent intent = new Intent(this, secondActivity.class);
        startActivity(intent);
 
    }
    public void Button3(View view){
        Intent intent = new Intent(this, thirdActivity.class);
        startActivity(intent);
 
    }
}
XML
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
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent"  tools:context=".FirstActivity">
<TableLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="первый"
        android:layout_marginRight="25dp"
        android:layout_gravity="center_vertical"
        android:onClick="Button1"/>
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="второй"
        android:layout_marginRight="25dp"
        android:layout_gravity="center_vertical"
        android:onClick="Button2"/>
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="третий"
        android:layout_marginRight="25dp"
        android:layout_gravity="center_vertical"
        android:onClick="Button3"/>
</TableLayout>
</RelativeLayout>
Spelcrawler
523 / 493 / 111
Регистрация: 12.03.2014
Сообщений: 1,646
Завершенные тесты: 1
06.07.2015, 09:14     Выбор главного Activity через пользовательские настройки или геолокации #18
vescovood, а что не так то? Что именно не работает?
vescovood
2 / 2 / 0
Регистрация: 02.07.2015
Сообщений: 24
06.07.2015, 15:22  [ТС]     Выбор главного Activity через пользовательские настройки или геолокации #19
Spelcrawler, сохранение выбора активити... ошибок нет, все запускает и переход на другие активити тоже, но при новом открытии приложения выводится главный экран, а не выбранный активити...=(
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2015, 15:47     Выбор главного Activity через пользовательские настройки или геолокации
Еще ссылки по теме:

Android Взаимодействие Fragment-ов через Activity (interface)
Android Подскажите как запустить через Inten Activity другого приложения
Фон activity или layout Android
Как сделать, чтобы при обновлении приложения в Google Play сохранялись пользовательские настройки и данные Android
Android Выбор начальной Activity экрана

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

Или воспользуйтесь поиском по форуму:
Spelcrawler
523 / 493 / 111
Регистрация: 12.03.2014
Сообщений: 1,646
Завершенные тесты: 1
06.07.2015, 15:47     Выбор главного Activity через пользовательские настройки или геолокации #20
Java
1
2
3
4
5
6
//Во всех листенерах на кнопках
public void Button1(View view) {
        setScreen(SCREEN_FIRST);
        Intent intent = new Intent(this, firstActivity.class);
        startActivity(intent); 
    }
Yandex
Объявления
06.07.2015, 15:47     Выбор главного Activity через пользовательские настройки или геолокации
Ответ Создать тему
Опции темы

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