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

Динамический интерфейс, восстановление Activity - Android

Войти
Регистрация
Восстановить пароль
 
Russtem81
3 / 3 / 1
Регистрация: 15.10.2015
Сообщений: 45
22.10.2015, 14:58     Динамический интерфейс, восстановление Activity #1
Как восстановить переменную при возврате в активность.(варианты с записью в файл или БД пока не рассматриваются, интересен базовый функционал)

При вращении экрана активность создается в соответствии с реализованным SQL запросом.
отрабатывают методы:
10-22 16:49:26.012 16758-16758/com.example.funktion D/Проверка﹕ onPause
10-22 16:49:26.022 16758-16758/com.example.funktion D/Проверка﹕ onSaveInstanceState
10-22 16:49:26.022 16758-16758/com.example.funktion D/Проверка﹕ onStop
10-22 16:49:26.022 16758-16758/com.example.funktion D/Проверка﹕ onDestroy
10-22 16:49:26.054 16758-16758/com.example.funktion D/Проверка﹕ onStart
10-22 16:49:26.062 16758-16758/com.example.funktion D/Проверка﹕ onRestoreInstanceState
в случае если перехожу в новую активность
10-22 16:53:38.646 16758-16758/com.example.funktion D/Проверка﹕ onPause
10-22 16:53:38.887 16758-16758/com.example.funktion D/Проверка﹕ onSaveInstanceState
10-22 16:53:38.887 16758-16758/com.example.funktion D/Проверка﹕ onStop
судя по последовательности необходимые данные сохраняются, но при возврате
10-22 16:54:21.247 16758-16758/com.example.funktion D/Проверка﹕ onDestroy
10-22 16:54:21.247 16758-16758/com.example.funktion D/Проверка﹕ onStart
не вызывается метод onRestoreInstanceState.



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
public class MainActivity extends Activity {
    private static final String TAG = "Проверка";
    public final static String EXTRA_MESSAGE ="com.example.funktion.MESSAGE";
    private ArrayList<String> MyList;
    {
        MyList = new ArrayList<String>();
    }
    ListView mList;
    String mMessage;
    EditText meditText;
    DatabaseHelper sqlHelper;
    Cursor userCursor = null;
         /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        setContentView(R.layout.activity_main);
        mList=(ListView)findViewById(R.id.listView);
        meditText= (EditText) findViewById(R.id.edit_message);
        mMessage = meditText.getText().toString();
 
    }
    protected void onDestroy() {
        super.onDestroy();
        Log.d(TAG, "onDestroy");
    }
    protected void onPause() {
        super.onPause();
        Log.d(TAG, "onPause");
    }
    protected void onRestart() {
        super.onRestart();
        Log.d(TAG, "onRestart");
    }
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        mMessage=savedInstanceState.getString("count");
        Log.d(TAG, "onRestoreInstanceState");
    }
    protected void onResume() {
        super.onResume();
        SQL(mMessage);
        Log.d(TAG, "onResume ");
    }
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putString("count",mMessage);
        Log.d(TAG, "onSaveInstanceState");
    }
    protected void onStart() {
        super.onStart();
        Log.d(TAG, "onStart");
    }
    protected void onStop() {
        super.onStop();
        Log.d(TAG, "onStop");
    }
   @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
 
        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }
 
        return super.onOptionsItemSelected(item);
    }
    public void sendMessage(View view)  {
         mMessage = meditText.getText().toString();
         SQL(mMessage);
   }
    ListView SQL(String mMessage){
        sqlHelper=new DatabaseHelper(this);
        sqlHelper = new DatabaseHelper(getApplicationContext());
        sqlHelper.create_db();
        MyList.clear();
        if (mMessage.length()==0) {
            Toast toast = Toast.makeText(getApplicationContext(),
                    "Введите RAS статус", Toast.LENGTH_SHORT);
            toast.show();
        }
        else {
 
 
            try {
 
                sqlHelper.open();
                String query = " SELECT * FROM " + DatabaseHelper.TABLE +
                        " Where " + DatabaseHelper.COLUMN_E_CODE + " LIKE " + " '%" + mMessage + "%' ";
               // Log.i(TAG, "Значение из массива mMessage из SQL  " + mMessage);
 
                userCursor = sqlHelper.database.rawQuery(query, null);
                int sql=userCursor.getCount();
 
                // Log.i(TAG, "String.valueOf(userCursor.getCount())"+String.valueOf(userCursor.getCount()) );
                //Log.i(TAG,""+ sql );
 
 
 
                if(sql == 0){
                    Toast toast = Toast.makeText(getApplicationContext(),
                            "Вы ввели какую то Х...", Toast.LENGTH_SHORT);
                    toast.show();
 
                }
                else if (sql ==1) {
                    userCursor.moveToFirst();
                    MyList.add(" COLUMN_ID:  " + userCursor.getString(userCursor.getColumnIndex(DatabaseHelper.COLUMN_ID)));
                    MyList.add(" COLUMN_E_CODE:  " + userCursor.getString(userCursor.getColumnIndex(DatabaseHelper.COLUMN_E_CODE)));
                    MyList.add(" COLUMN_E_MESSAGE:  " + userCursor.getString(userCursor.getColumnIndex(DatabaseHelper.COLUMN_E_MESSAGE)));
                    MyList.add(" COLUMN_DETECT:  " +userCursor.getString(userCursor.getColumnIndex(DatabaseHelper.COLUMN_DETECT)));
                    MyList.add(" COLUMN_CHECK:  " + userCursor.getString(userCursor.getColumnIndex(DatabaseHelper.COLUMN_CHECK)));
                    MyList.add(" COLUMN_MOTOR:  " +userCursor.getString(userCursor.getColumnIndex(DatabaseHelper.COLUMN_MOTOR)));
                    MyList.add(" COLUMN_SENSOR:  " + userCursor.getString(userCursor.getColumnIndex(DatabaseHelper.COLUMN_SENSOR)));
                    MyList.add(" COLUMN_ROOT_CHECK:  " +userCursor.getString(userCursor.getColumnIndex(DatabaseHelper.COLUMN_ROOT_CHECK)));
                    MyList.add(" COLUMN_RESOL:  " + userCursor.getString(userCursor.getColumnIndex(DatabaseHelper.COLUMN_RESOL)));
 
                }
                else if (sql>1) {
                    while (userCursor.moveToNext())
                    {
                        MyList.add(" COLUMN_ID:  " + userCursor.getString(userCursor.getColumnIndex(DatabaseHelper.COLUMN_ID)));
                        MyList.add(" COLUMN_E_CODE:  " + userCursor.getString(userCursor.getColumnIndex(DatabaseHelper.COLUMN_E_CODE)));
                        MyList.add(" COLUMN_E_MESSAGE:  " + userCursor.getString(userCursor.getColumnIndex(DatabaseHelper.COLUMN_E_MESSAGE)));
                        MyList.add(" COLUMN_DETECT:  " +userCursor.getString(userCursor.getColumnIndex(DatabaseHelper.COLUMN_DETECT)));
                        MyList.add(" COLUMN_CHECK:  " + userCursor.getString(userCursor.getColumnIndex(DatabaseHelper.COLUMN_CHECK)));
                        MyList.add(" COLUMN_MOTOR:  " +userCursor.getString(userCursor.getColumnIndex(DatabaseHelper.COLUMN_MOTOR)));
                        MyList.add(" COLUMN_SENSOR:  " + userCursor.getString(userCursor.getColumnIndex(DatabaseHelper.COLUMN_SENSOR)));
                        MyList.add(" COLUMN_ROOT_CHECK:  " +userCursor.getString(userCursor.getColumnIndex(DatabaseHelper.COLUMN_ROOT_CHECK)));
                        MyList.add(" COLUMN_RESOL:  " + userCursor.getString(userCursor.getColumnIndex(DatabaseHelper.COLUMN_RESOL)));
                    }
 
                }
                // getListView().setOnItemLongClickListener(this);
                sqlHelper.database.close();
                userCursor.close();
 
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
 
        ArrayAdapter mAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, MyList);
        mList.setAdapter(mAdapter);
        mList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
 
                if (MyList.size() < 10){
                    Intent MyIntent = new Intent(MainActivity.this, ImageSoSO.class);
                    MyIntent.putExtra(EXTRA_MESSAGE, MyList.get(position));
                    startActivity(MyIntent);}
                else {
                    // MyList.clear();
                    Toast toast = Toast.makeText(getApplicationContext(),
                            "Все же утоните запрос", Toast.LENGTH_SHORT);
                    toast.show();
                }
              //  Log.i(TAG, "Значение из массива" + MyList.get(position));
              //  Log.v(TAG, "Запись = " + position + ", id = " + id);
              //  Log.i(TAG, "Значение из массива CREAT" + MyList.size());
           }
        });
        return mList;
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2015, 14:58     Динамический интерфейс, восстановление Activity
Посмотрите здесь:

Из одного Activity получить значение другого Activity Android
Из одной Activity запустить функцию другой Activity Android
Как вызвать Activity не из Activity? Android
Activity Android
Android Приложение зависает, если свернуть и развернуть Activity или перейти на другую Activity
Android Android - Передача данных с одного Activity на другое Activity
Изменение layout-элементов одного activity из другого activity Android
Создание Activity в другом Activity Android
Android Восстановление позиции ListView по возвращении из другого Activity
Android Вызвать из одной activity функцию другой activity
Android Basic Activity
Android Вывод activity в activity

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Spelcrawler
521 / 491 / 110
Регистрация: 12.03.2014
Сообщений: 1,641
Завершенные тесты: 1
22.10.2015, 15:59     Динамический интерфейс, восстановление Activity #2
Russtem81, ну видимо во втором случае активити не успела еще из памяти выгрузиться потому и не восстанавливается.
Russtem81
3 / 3 / 1
Регистрация: 15.10.2015
Сообщений: 45
22.10.2015, 17:55  [ТС]     Динамический интерфейс, восстановление Activity #3
Сделал новую активность(Black Activity от Android Studio) на ней все заработало.
Проверил в майнфесте у активности с которой криво проходил возврат стоял родитель MainActivity(моя основная) может как то с этим было связанно или эмулятор глючил.

В второй активности планируется показывать конкретный датчик на которой ругается контроллер, вот тут на данном этапе уже каша как это лучше реализовать. Вариантов можно предположить много для решения этой задачи.
1. Организовать справочник слов в соответствии с которыми подгружать соответствующий кусок фото схемы из ресурсов.
2. Загрузить детализированную схему с спецификацией(датчиков с одинаковыми названиями нет) распознавать изображение, выделять координаты на изображении и в результате подсвечивать. Самый крутой вариант, не знаю возможно это или нет.
3. Самое простое загружать большое масштабируемое изображение чтоб человек сам искал расположение датчика, но и это как сделать пока не знаю, минимальный размер изображения на котором можно все найти 1257*1522.


Конечная цель, написать программу с помощью которой человек с улицы сможет легко выявлять неисправность устройство в котором более сотни датчиков оптических пар и прочих гадостей. Сама железка состоит из блоков их всего 10.
Yandex
Объявления
22.10.2015, 17:55     Динамический интерфейс, восстановление Activity
Ответ Создать тему
Опции темы

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