Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Push Notifications Parse

Здравствуйте. Для чистоты эксперимента создал чистый проект и всё скопировал с гида парсе по созданию уведомлений, скомпилировал, устройство появилось в Instalation, отправляю уведомление, пишет status sent, а pushes sent 0, на устройстве всё тихо, логи пустые. Вопрос, что не так? Судя по руководствам и всяким любительским видео, всё должно работать.
Ответ: YuraAAA, ну у всех есть, а у меня нет? В руководстве написано, что без проблем на эмуляторе запускается.

Добавлено через 41 минуту
Всё пришло, надо было установить play service. Я надеялся без него обойтись.

Добавлено через 1 час 45 минут
Ещё вопрос по теме: как сообщение передать в интент активности, которая запускается после нажатия на оповещение?
Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class ParseReceiver extends ParsePushBroadcastReceiver {
 
    @Override
    protected Class<? extends Activity> getActivity(Context context, Intent intent){
 
        return PushActivity.class;
    }
 
 @Override
    protected void  onPushOpen(Context context, Intent intent) {
 
    }
    
}
Добавлено через 11 минут
В смысле сообщение оповещения.

Добавлено через 1 час 26 минут
Разобрался
Вопрос: GCM не работает в моей программе

Здравствуйте! Задался такой стандартной задачей, как рассылка новостных push-уведомлений всем пользователям приложения. Стал использовать для этого GCM Topic Messaging. Всё сделал по документации и , но приложение корректно не работает. Получается так, что регистрация проходит успешно, но уведомления просто попросту не приходят в приложение, хотя post-запрос на сервер мой точно правильный, проблема очевидно со стороны клиента. Никогда не сталкивался со столь странной проблемой - всё по коду совпадает с образцом и документацией, но работает некорректно. Тестировал я на своём реальном телефоне, "отправив" после установки push, а также на BlueStacks. Коды на Stack Overflow, где мне никто не ответил - .

Добавлено через 2 минуты
Также я заметил, что моё приложение в разделе "Управление приложениями" системных настроек на находится в работающих сервисах.

Добавлено через 54 секунды
Я уже как 3 дня бесполезно пытаюсь найти решение это странной проблемы
Ответ: Alex Andro, попробуй использовать parse, настраивается за 10 минут, все работает без проблем. другие сервисы не смотрел, т.к. нет необходимости
Вопрос: Некорректно работает таймер

Здравствуйте! Написал для себя мелкое приложение в котором есть таймер, кнопка которая его останавливает и запускает, кнопка которая добавляет 30 мин. На первый взгляд все работает нормально, но когда включаешь таймер и через полчаса проверяешь, то он уже не работает. Причем каждый раз он перестает работать через разное время. Есть предположение, что возможно приложение просто закрывается, так как андроид думает, что оно больше не нужно. Как это исправить? Код ниже:

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
package com.example.veret.doit;
 
import android.content.SharedPreferences;
import android.os.CountDownTimer;
import android.os.Handler;
import android.os.StrictMode;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
 
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private int time=0;
    private boolean isTimeRunning=false;
    private TextView timeView;
    SharedPreferences sPref;
    final String TIME_COUNT="time_count";
    final String MESSEGE="messege";
    CdTimer timer;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        Button startButton=(Button) findViewById(R.id.startTime);
        Button add=(Button) findViewById(R.id.do_it);
        startButton.setOnClickListener(this);
        add.setOnClickListener(this);
 
 
        sPref = getSharedPreferences("MyPref", MODE_PRIVATE);
        time = sPref.getInt(TIME_COUNT,0);
        TextView textView=(TextView) findViewById(R.id.messege);
        textView.setText(sPref.getString(MESSEGE,""));
        timeView=(TextView) findViewById(R.id.timeView);
 
        timer=new CdTimer(time*1000,1000);
 
        int hour=time/3600;
        int min=(time/60)%60;
        int sec=time%60;
        String timeStr = String.format("%d:%02d:%02d", hour, min, sec);
        timeView.setText(timeStr);
    }
 
    public void onMessClick(View v){
        EditText editText=(EditText) findViewById(R.id.edit_text);
        TextView textView=(TextView) findViewById(R.id.messege);
        String mes= String.valueOf(editText.getText());
        textView.setText(mes);
        sPref = getSharedPreferences("MyPref", MODE_PRIVATE);
        SharedPreferences.Editor ed = sPref.edit();
        ed.putString(MESSEGE,mes);
        ed.commit();
        editText.setText("");
    }
    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.startTime:
                Button startButton=(Button) findViewById(R.id.startTime);
                if (isTimeRunning) {
                    isTimeRunning = false;
                    timer.cancel();
                    startButton.setText("Начать страдать фигней");
                }
                else {
                    isTimeRunning = true;
                    timer.start();
                    startButton.setText("Я молодец!");
                }
                break;
            case R.id.do_it:
                time+=30*60;
                break;
        }
    }
 
    @Override
    protected void onDestroy() {
        super.onDestroy();
        sPref = getSharedPreferences("MyPref", MODE_PRIVATE);
        SharedPreferences.Editor ed = sPref.edit();
        ed.putInt(TIME_COUNT,time);
        ed.commit();
    }
 
    public class CdTimer extends CountDownTimer {
        public CdTimer(long millisInFuture, long countDownInterval) {
            super(millisInFuture, countDownInterval);
        }
 
        @Override
        public void onTick(long millisUntilFinished) {
            time--;
            if(time<=0)
                time=0;
            int hour=time/3600;
            int min=(time/60)%60;
            int sec=time%60;
            String timeStr = String.format("%d:%02d:%02d", hour, min, sec);
            timeView.setText(timeStr);
 
        }
 
        @Override
        public void onFinish() {
 
        }
    }
   
}
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
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
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context="com.example.veret.doit.MainActivity">
 
    <TextView
        android:id="@+id/timeView"
        android:text="00:00:00"
        android:textSize="70dp"
        android:gravity="center"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
 
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Начать страдать фигней"
        android:id="@+id/startTime"/>
 
 
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Я прошел параграф!"
        android:id="@+id/do_it"/>
    <TextView
        android:id="@+id/messege"
        android:layout_weight="1"
        android:textSize="30dp"
        android:gravity="center"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <EditText
            android:id="@+id/edit_text"
            android:layout_weight="1"
            android:layout_width="wrap_content"
            android:layout_height="match_parent" />
        <Button
            android:id="@+id/BtnMes"
            android:onClick="onMessClick"
            android:text="Да!"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </LinearLayout>
</LinearLayout>
Ответ: Вобще то правельно делать такую штуку через сервис, когда телефон засыпает он заходит в онПауз, вот и таймер ваш перестает работать. Скорее всего если вы откроете приложение и все пол часа не дадите ему уснуть, все сработает нормально. Дальше, отображение времени не очень правельное:
Java
1
2
3
4
if(time<=0)
                time=0;
            int hour=time/3600;
            int min=(time/60)%60;
тайм это инт, вы его делите, т.е например если тайм = 149 и вы разделите его на 60 результат будет 2, но на самом деле то это практически 2.5 значит не правельно показываете время. нужно просто перевести миллисекунды в время, примерно это делается так:
Java
1
2
3
4
5
String.format("%d min, %d sec", 
    TimeUnit.MILLISECONDS.toMinutes(millis),
    TimeUnit.MILLISECONDS.toSeconds(millis) - 
    TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))
);
этот стринг и вставляйте в текствью

а, и последнее это:
Java
1
2
   startButton.setOnClickListener(this);
        add.setOnClickListener(this);
мемори лик, надо это делать в онрезюм , а в он пауз делать наль
Вопрос: AlarmManager работает ли? Состояние

Как узнать состояние работающего (запущенного ) AlarmManager ?

Добавлено через 2 минуты
то есть нужна логика
Java
1
2
3
4
5
6
7
8
if (AlarmManagersost==true)
{
//работает
}
else
{
//не работает
}
Ответ: Я так и поступил. Решил отказаться от проверки состояния AlarmManager и теперь после нажатия кнопки запуска считаю что он работает. А при нажатии кнопки стоп - не работает.
Вопрос: Не работает wifi

Добрый вечер! На телефоне zte blade x3 не работает вай фай и выходит ошибка system не отвечает. Все перепробовала ничего не помогает. clean master пробовала запускать, кэш очистила, на антивирусы проверила, к заводским настройкам возвращала телефон... Что это может быть? Вай фай то появляется то исчезает, а когда к заводским настройкам вернула, так вообще перестал работать вай фай.
Ответ: Если работал и внезапно перестал, то рекомендую проверить работает ли действительно wifi у Вашего телефона. Попробуйте подключиться к любой другой сети (на работе, у знакомых, к открытой сети где-нибудь в общественном месте и т.п.). Если Wifi будет работать, то проблема все таки в сопряжении телефона и роутера, если нет, значит у телефона что-то.
Вопрос: Case не работает с константами

Здравствуйте!
Объясните, пожалуйста, почему так происходит?!
Это код не работает (ни один из вариантов не выбирается):
Кликните здесь для просмотра всего текста
Код Java(TM) 2 Platform Standard Edition 5.0
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
public class NavigatorFragment extends AutoSubscribingFragment {
    public static final int ACTION_SUBJECTS_ID     = Integer.MAX_VALUE;
    public static final int ACTION_TEACHERS_ID     = Integer.MAX_VALUE - 1;
    public static final int ACTION_TIMETABLES_ID   = Integer.MAX_VALUE - 2;
    public static final int ACTION_ABOUT_ID        = Integer.MAX_VALUE - 3;
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        //bla-bla-bla
        view.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(MenuItem menuItem) {
                final int id = menuItem.getItemId();
 
                if (menuItem.getGroupId() == R.id.timetable_menu) {
                    //bla-bla-bla
                } else {
 
                    switch (id) {
                        case ACTION_SUBJECTS_ID:
                            //bla-bla-bla
                            break;
 
                        case ACTION_TEACHERS_ID:
                            //bla-bla-bla
                            break;
 
                        case ACTION_TIMETABLES_ID:
                            //bla-bla-bla
                            break;
 
                        case ACTION_ABOUT_ID:
                            //bla-bla-bla
                            break;
                    }
                }
 
                return false;
            }
        });
 
        return view;
    }
}


Этот же код, но с if-else работает:
Кликните здесь для просмотра всего текста
Код Java(TM) 2 Platform Standard Edition 5.0
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
public class NavigatorFragment extends AutoSubscribingFragment {
    private static final String TAG = NavigatorFragment.class.getSimpleName();
    public static final int ACTION_SUBJECTS_ID     = Integer.MAX_VALUE;
    public static final int ACTION_TEACHERS_ID     = Integer.MAX_VALUE - 1;
    public static final int ACTION_TIMETABLES_ID   = Integer.MAX_VALUE - 2;
    public static final int ACTION_ABOUT_ID        = Integer.MAX_VALUE - 3;
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        //bla-bla-bla
        view.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(MenuItem menuItem) {
                final int id = menuItem.getItemId();
 
                if (menuItem.getGroupId() == R.id.timetable_menu) {
                    //bla-bla-bla
                } else if (id == ACTION_SUBJECTS_ID) {
                        //bla-bla-bla
                    } else if (id == ACTION_TEACHERS_ID) {
                        //bla-bla-bla
                    } else if (id == ACTION_TIMETABLES_ID) {
                        //bla-bla-bla
                    } else if (id == ACTION_ABOUT_ID) {
                        //bla-bla-bla
                    }
 
                return false;
            }
        });
    }
}


Бред какой-то или я что-то не знаю об этом операторе.
Ответ:
Сообщение от Armagedo
Вот прогоняем и работает
Да, я догадываюсь, что код верный. И просто в джава такого ни разу не было, но при компиляции под андройд иногда бывает, что код со свитчем не выполняется, хотя должен, ошибка такая не только у меня была.
Вопрос: Socket подключение не работает в другой активности

Проблемма такова: при передачи данных из первой активности не работает передача данных с второй активности и наоборот.
После того как передача данных на первой активности завершена, по определенной команде стартует 2-я активность. Но вот в ней передача уже не происходит. Как я понял, данные доходят до сервера но ответ теряется. При этом, сервер спокойно выдерживает несколько подключений сразу.
При переходе из 1 активности во вторую я закрываю сокет так:
Java
1
2
3
                        dataInputStream.close();
                        dataOutputStream.close();
                        client.close();
flush() и т.д присутствует. В чем может быть проблема? Как полностью убить сокет на 1 активности?
P.S. если перевернуть экран на 2-й активности - передача идет.
Решил запустить отдельно 2-ю активность - все работает, но тогда проблемы с 1-й(

Добавлено через 1 минуту
Завершать активность при переходе на 2 активность пробовал.

Добавлено через 1 час 18 минут
Интересный факт, но отправка данных через вторую активность получается после 0,5-2сек ожидания. Можно ли как-то отследить, когда сервер[я могу ошибаться] готов принимать новые данные?
Ответ: Я сделал так: при переходе на 2 активность в ней же запускаю CountDownTimer. И через 2 секунды идет подключение. Работает...
Вопрос: SetVisibility не работает для RadioGroup

Здравствуйте. Почему-то команда setVisibility(9) не работает для radioGroup..
Хочу, чтобы при выбранном параметре менялся набор radioButtons. Удалось скрыть их через .xml, но не вернуть в .class. Где косячу?


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
 public void onRadioClick (View v) {
 
 
        RadioGroup radiogroup1 = (RadioGroup)findViewById(R.id.radioGroup1);
 
        RadioGroup radiogroup2 = (RadioGroup)findViewById(R.id.radioGroup2);
        RadioGroup radiogroup3 = (RadioGroup)findViewById(R.id.radioGroup3);
        Intent answerIntent = new Intent();
 
        int idM = MainActivity.idM;
        if (idM == 1) {
 
            radiogroup1.setVisibility(0); // так же пробовал setVisibility(View.VISIBLE)
 
            switch (v.getId()) {
                case R.id.radioDog:
                    answerIntent.putExtra(THIEF, "Пёсик");
                    break;
                case R.id.radioCrow:
                    answerIntent.putExtra(THIEF, "Ворона");
                    break;
                case R.id.radioCat:
                    answerIntent.putExtra(THIEF, "Котик");
                    break;
 
                default:
                    break;
 
 
            }
            setResult(RESULT_OK, answerIntent);
            finish();
 
        } else if (idM == 2) {
 
 
 
 
            switch (v.getId()) {
                case R.id.radioSpeeder:
 
                    answerIntent.putExtra(CAR, "Кот гонщик");
                    break;
                case R.id.radioFlyer:
                    answerIntent.putExtra(CAR, "Белка летун");
                    break;
                case R.id.radioZub:
                    answerIntent.putExtra(CAR, "Зубочистка");
                    break;
 
                default:
                    break;
 
            }setResult(RESULT_OK, answerIntent);
            finish();
        } else {
 
 
            switch (v.getId()) {
                case R.id.radioBegemot:
                    answerIntent.putExtra(ARBUZ, "Бегемот");
                    break;
                case R.id.radioRoma:
                    answerIntent.putExtra(ARBUZ, "Рома");
                    break;
                case R.id.radioRain:
                    answerIntent.putExtra(ARBUZ, "Дождь");
                    break;
 
                default:
                    break;
 
 
            }setResult(RESULT_OK, answerIntent);
            finish();
 
        }
 
 
 
    }
Ответ: Если оставить один набор Radio Group, но отправляющий разные значения, то все работает корректно.

Добавлено через 11 часов 21 минуту
Методом тыка заметил в программе, что radiogroup все так удаляются ненужные, но только после того, как я выбрал один из вариантов. Убирается на доли секунд перед отправлением и переходом из активности.. А надо, чтобы сразу.

Добавлено через 11 минут
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
package ru.owngames.sherlok;
 
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
 
 
public class MainActivity extends AppCompatActivity {
 
 
 
    static final private int CHOOSE_THIEF = 0;
    static final private int CHOOSE_CAR = 1;
    static final private int CHOOSE_ARBUZ = 2;
    static public int idM;
 
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }
 
 
 
 
    //MENU
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
 
        int id = item.getItemId();
        TextView questText = (TextView) findViewById(R.id.textQuestion);
        TextView answerText = (TextView)findViewById(R.id.textViewInfo);
 
        //операция для пунктов выбора меню
        switch (id) {
            case R.id.action_question1:
                questText.setText("Кто украл сосиску?");
                answerText.setText("");
                idM = 1;
                return true;
 
            case R.id.action_question2:
                questText.setText("Кто купил машинку?");
                answerText.setText("");
                idM = 2;
                return true;
 
            case R.id.action_question3:
                questText.setText("Кто съел арбуз?");
                answerText.setText("");
                idM = 3;
                return true;
 
            default:
                idM = 1;
                // answerText.setText("");
                return super.onOptionsItemSelected(item);
        }
 
    }
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
 
 
 
    }
 
 
    public void onClick(View v){
 
 
        Intent questionIntent = new Intent(MainActivity.this,SecondActivity.class);
 
        if (idM == 1){
 
            startActivityForResult(questionIntent, CHOOSE_THIEF);
        }
        else if (idM == 2){
 
            startActivityForResult(questionIntent, CHOOSE_CAR);
        }
        else if(idM == 3){
 
            startActivityForResult(questionIntent, CHOOSE_ARBUZ);
        }
 
 
 
 
 
    }
 
    protected void onActivityResult(int requestCode, int resultCode, Intent data){
        super.onActivityResult(requestCode,resultCode,data);
 
        TextView infoTextView = (TextView)findViewById(R.id.textViewInfo);
 
        if(requestCode == CHOOSE_THIEF){
            if(resultCode == RESULT_OK){
                String thiefname = data.getStringExtra(SecondActivity.THIEF);
                infoTextView.setText(thiefname);
            }else{
                infoTextView.setText("");
            }
        }
 
        if(requestCode == CHOOSE_CAR){
            if(resultCode == RESULT_OK){
                String carname = data.getStringExtra(SecondActivity.CAR);
                infoTextView.setText(carname);
            }else{
                infoTextView.setText("");
            }
        }
        if(requestCode == CHOOSE_ARBUZ){
            if(resultCode == RESULT_OK){
                String arbuzname = data.getStringExtra(SecondActivity.ARBUZ);
                infoTextView.setText(arbuzname);
            }else{
                infoTextView.setText("");
            }
        }
    }
}

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
package ru.owngames.sherlok;
 
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RadioGroup;
import android.widget.TextView;
 
 
public class SecondActivity extends AppCompatActivity {
 
    public final static String THIEF = "ru.owngames.sherlok.THIEF";
    public final static String CAR = "ru.owngames.sherlok.CAR";
    public final static String ARBUZ = "ru.owngames.sherlok.ARBUZ";
 
 
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
 
 
    }
 
 
 
 
 
 
    public void onRadioClick (View v) {
 
 
        RadioGroup rp1 = (RadioGroup)findViewById(R.id.radioGroup1);
        RadioGroup rp2 = (RadioGroup)findViewById(R.id.radioGroup2);
        RadioGroup rp3 = (RadioGroup)findViewById(R.id.radioGroup3);
 
 
        Intent answerIntent = new Intent();
 
        int idM = MainActivity.idM;
        if (idM == 1) {
 
 
            rp3.setVisibility(View.GONE);
            rp2.setVisibility(View.GONE);
 
            switch (v.getId()) {
                case R.id.radioDog:
                    answerIntent.putExtra(THIEF, "Пёсик");
                    break;
                case R.id.radioCrow:
                    answerIntent.putExtra(THIEF, "Ворона");
                    break;
                case R.id.radioCat:
                    answerIntent.putExtra(THIEF, "Котик");
                    break;
 
                default:
                    break;
 
 
            }
            setResult(RESULT_OK, answerIntent);
            finish();
 
        } else if (idM == 2) {
 
 
 
            rp1.setVisibility(View.GONE);
            rp3.setVisibility(View.GONE);
            switch (v.getId()) {
                case R.id.radioSpeeder:
 
                    answerIntent.putExtra(CAR, "Кот гонщик");
                    break;
                case R.id.radioFlyer:
                    answerIntent.putExtra(CAR, "Белка летун");
                    break;
                case R.id.radioZub:
                    answerIntent.putExtra(CAR, "Зубочистка");
                    break;
 
                default:
                    break;
 
            }setResult(RESULT_OK, answerIntent);
            finish();
        } else if (idM == 3){
 
            rp1.setVisibility(View.GONE);
            rp2.setVisibility(View.GONE);
            switch (v.getId()) {
                case R.id.radioBegemot:
                    answerIntent.putExtra(ARBUZ, "Бегемот");
                    break;
                case R.id.radioRoma:
                    answerIntent.putExtra(ARBUZ, "Рома");
                    break;
                case R.id.radioRain:
                    answerIntent.putExtra(ARBUZ, "Дождь");
                    break;
 
                default:
                    break;
 
 
            }setResult(RESULT_OK, answerIntent);
            finish();
 
        }
 
 
 
    }
 
}
Добавлено через 10 часов 54 минуты
Кому интересно, всё оказалось проще некуда. Изначально ниже написанную часть кода я добавил в метод "onRadioClick" и удивлялся, почему не работало нормально))

Перенес в onCreate и заработало как надо.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 RadioGroup rp1 = (RadioGroup)findViewById(R.id.radioGroup1);
        RadioGroup rp2 = (RadioGroup)findViewById(R.id.radioGroup2);
        RadioGroup rp3 = (RadioGroup)findViewById(R.id.radioGroup3);
 
        if(idM == 1){
            rp3.setVisibility(View.GONE);
            rp2.setVisibility(View.GONE);
        }
        else if(idM == 2){
            rp1.setVisibility(View.GONE);
            rp3.setVisibility(View.GONE);
        }
        else{
            rp1.setVisibility(View.GONE);
            rp2.setVisibility(View.GONE);
        }
Вопрос: Не могу заставить работать Retrofit + RxJava

Не могу заставит работать Retrofit + RxJava.
Кто может помочь?
Без RxJava всё работает.
Лямбды никак не могу подключить, поэтому лучше без них.
Готов заплатить за консультацию, уже всю Сеть облазил.
Нужен просто рабочий кусок кода для копипаста, чтобы разобраться.
Как правильно подписаться на события и выполнить свой код в onNext, onError и т.д. ?
Ответ: demixdn - спасибо бро, ты лучший!
Теперь всё работает.
И это в тот момент, когда я уже решил, что обречен на вечное использование Асинктасков
Вопрос: Проект с API 25 не работает на более ранних версиях

Подскажите, пожалуйста. Опытные. Создаю проект в intlje IDE от jet brains и у меня по дефолту всегда берется апи 25. и из-за этого не работает на старых версиях. При создании проекта указываю 4.0.1 и это все равно. В External libraries API 25 , ак же в настройках проекта, все бибилиотеки 25, и сам android 25 api. У меня все версии лежат в папке Android. Собственно вот.
качал через сдк менеджер в папку Android, и там собственно все и лежит, я походу как-то глобальные настройки идеи выставил неправильно, раз такое происходит, если нужно какой скриншот прикрепить скажите!
Ответ:
Кликните здесь для просмотра всего текста
Сообщение от vxg
влепить в buildToolsVersion 25
ты не подумай, что я не догадался
просто спросить то у опытного стоило)

Сейчас затесчу, затещу, вообщем вы поняли. Отпишусь как проверю, только не покидайте меня раньше времени)

з.ы А нет ли каких-нибудь русского язычных ссылок где можно получше узнать как вообще все работает? Как идея собирает, как что куда кладет?

Добавлено через 9 часов 9 минут
Все работает, поставил 25.0.0 buildToolsVersion. Благодарю!