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

Отследить закрытие SearchView Android - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Thread.sleep() http://www.cyberforum.ru/android-dev/thread1682789.html
Вообщем, проблемма вот в чем. Я пытаюсь заставить "заснуть" программу, в результате - она засыпает, но сразу выводит все данные. Например, for (int i = 0; i<10; i++) { text.append(""+i); try{ Thread.sleep(5000); } catch (.....) {} text.append("After Sleep"+i); } }
Программирование Android Квадратные элементы TextView в GridView и выравнивание текста в них В общем начал учить андроид и для практики придумал не большую программку, основная задача сейчас сделать "игровое" поле 10х10. Заполнил GridView TextView-ами. Проблема состоит в том чтобы сделать ячейки GridView квадратными, в инете советуют создать свой кастомный компонент, наследованый от TextView, что собственно я и сделал, вот код : import android.content.Context; import... http://www.cyberforum.ru/android-dev/thread1682689.html
Программирование Android Принцип работы Service
Здравствуйте, господа. Не могу понять, что еще может Service, кроме перегружаемых методов? При первом запуске в onStartService или onStartCommand можно писать что угодно, но оно сработает только при старте или перезагрузке сервиса. Использование в сервисе Timer или AlarmManager или AsyncTask не точная. Например, при загруженности телефона эти методы срабатывают с задержкой. Да и вообще,...
Программирование Android Какой способ предпочтительнее для реализации повторяющейся функции
Требуется раз в минуту выполнять определенное действие, скажем, на экране менять счетчик времени. Понятно, что это надо делать не в UI. Где лучше реализовать такой таймер, считающий минуту? В Runnable, Thread или Service?
Программирование Android Получить json http://www.cyberforum.ru/android-dev/thread1682364.html
Здравствуйте. Мне нужно получить следующий json ответ с моего сайта для мобильного приложения. {"count":23,"next":null,"previous":null,"results":} Используя эту статью параметр json всегда получается null JSONObject json = jParser.makeHttpRequest(url, "GET", params); AssyncTask:
Программирование Android Android sdk Что такое Android SDK (SDK)? простым человеческим языком Когда говорят нужно знать Android SDK - что нужно знать? Здесь пишут что это "среда разработки приложений для операционной системы Android", а что же тогда Android Studio, Eclipse и т.д.. подробнее

Показать сообщение отдельно
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
12.03.2016, 12:10
TigRon4ik, в общем, не знаю, правильно или нет думаю, пока накидаю вам часть своего кода, а вы уж разбирайтесь. Я бы проверял нажатие на стрелку и состояние поиска (открыт или закрыт), в зависимости от этого выставлял бы новое состояние поиска.
Пусть есть меню с поисковой строкой (оно у вас есть):
Кликните здесь для просмотра всего текста

XML
1
2
3
4
5
6
7
8
9
10
11
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".ui.MainActivity">
 
    <item
        android:id="@+id/action_search"
        android:icon="@drawable/ic_action_search"
        android:orderInCategory="100"
        android:showAsAction="collapseActionView|ifRoom"
        android:title="@string/action_search" />
</menu>

Тогда в активности надо прописать:
Кликните здесь для просмотра всего текста
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
    private MenuItem searchAction;
    private boolean isSearchOpen;
    private EditText etSearch;
    private String searchQuery;
 
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        if (savedState == null) {
            isSearchOpen = false;
            searchQuery = "";
        } else {
            isSearchOpen = savedState.getBoolean(SEARCH_OPEN);
            searchQuery = savedState.getString(SEARCH_QUERY);
        }
    }
 
    @Override
    protected void onResume()
    {
        super.onResume();
 
        // If the search bar was opened previously, open it on recreate.
        handleMenuSearch(!isSearchOpen);
    }
 
    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putBoolean(SEARCH_OPEN, isSearchOpen);
        outState.putString(SEARCH_QUERY, searchQuery);
    }
 
    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        searchAction = menu.findItem(R.id.action_search);
        return super.onPrepareOptionsMenu(menu);
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item)
    {
        switch (item.getItemId())
        {
            case android.R.id.home:
                finish(); // Здесь ваши действия.
                return true;
            case R.id.action_search:
                handleMenuSearch(isSearchOpen);
                return true;
        }
        return super.onOptionsItemSelected(item);
    }
 
    private void handleMenuSearch(boolean searchOpen) {
        if (searchOpen) {
            closeSearchBar();
        } else {
            openSearchBar(searchQuery);
        }
    }
 
    private void openSearchBar(String queryText) {
        // Set custom view on action bar.
        final ActionBar actionBar = getActionBar();
        actionBar.setDisplayShowCustomEnabled(true);
        actionBar.setCustomView(R.layout.search_bar);
 
        iconOpenSearch = ContextCompat.getDrawable(this, R.drawable.ic_action_search);
        iconCloseSearch = ContextCompat.getDrawable(this, R.drawable.ic_action_close);
 
        // Search edit text field setup.
        etSearch = (EditText) actionBar.getCustomView().findViewById(R.id.search);
        etSearch.setText(queryText);
        etSearch.requestFocus();
        etSearch.addTextChangedListener(new SearchWatcher());
 
        // Change search icon accordingly.
        if (searchAction != null)
            searchAction.setIcon(iconCloseSearch);
        isSearchOpen = true;
 
        // Show soft keyboard.
        showSoftKeyboard(true);
    }
 
    private void closeSearchBar() {
        // Remove custom view.
        getActionBar().setDisplayShowCustomEnabled(false);
 
        // Change search icon accordingly.
        if (searchAction != null)
            searchAction.setIcon(iconOpenSearch);
        isSearchOpen = false;
        // Clear search text.
        if (etSearch != null)
            etSearch.setText("");
 
        // Hide soft keyboard.
        showSoftKeyboard(false);
    }
 
    private void showSoftKeyboard(boolean visible) {
        final InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        if (visible) {
            imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
        } else {
            View view = this.getCurrentFocus();
            if (view == null) {
                view = etSearch;
            }
            if (view != null) {
                imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
            }
        }
    }
 
    /**
     * Responsible for handling changes in search edit text.
     */
    private class SearchWatcher implements TextWatcher {
        @Override
        public void beforeTextChanged(CharSequence c, int i, int i2, int i3) {
        }
 
        @Override
        public void onTextChanged(CharSequence c, int i, int i2, int i3) {
        }
 
        @Override
        public void afterTextChanged(Editable editable) {
            searchQuery = etSearch.getText().toString();
            // Вызов поиска по строке.
        }
    }
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru