Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Nachinka
11 / 11 / 0
Регистрация: 19.02.2014
Сообщений: 95
1

Небольшой поиск в приложении

10.04.2014, 18:31. Просмотров 659. Ответов 4
Метки нет (Все метки)

Здравствуйте всем)

Задумал как-то сделать небольшое приложение, поиск погоды, просто так.Так от главный вопрос возник, как организовать сам поиск?

Наклепал кое что, как обычно:

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
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
 
public class ViewActivity extends Activity {
    EditText searchtext;
    TextView txtv;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.two);
        searchtext = (EditText) findViewById(R.id.editText1);
        txtv = (TextView) findViewById(R.id.textView1);
 
        searchtext.setOnKeyListener(new View.OnKeyListener() {
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                if (event.getAction() == KeyEvent.ACTION_DOWN
                        && (keyCode == KeyEvent.KEYCODE_ENTER)) {
                    String strCatName = searchtext.getText().toString();
                    ReadSearchdata(strCatName);
                    return true;
                }
                return false;
            }
 
        });
    }
 
    protected void ReadSearchdata(String strCatName) {
        if (strCatName.equals("pit")) {
            txtv.setText("Питер - хороший город!");
        }
    }
}
Простейший примерчик.

Но так ли я реализовываю поиск?) Само собой не так, надо что делать через СеарчДиалог..Но особого опыта с ним нет пока что.
Возможно, при таком варианте не удастся сделать поиск по умолчанию, то есть при поиске мы могли бы выбрать искать через <имяЭтойШтуки>
Почему такой вариант не подходит?)

Добавлено через 20 часов 27 минут
Если вдруг и использовать вот такой вариант, то какие конфузы могут случится?)
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2014, 18:31
Ответы с готовыми решениями:

Небольшой конфуз с запуском второй Activity
Всем приветик! Возникла небольшая проблемка с передачей данных между двумя...

Крэшится при запуске. Небольшой и простой код
Приложение крэшится при запуске. Что я сделал не так? Также, пользуясь...

Скачать небольшой файл и засунуть его в ArrayList<String>
Есть на сервере xml файл 10кб (такой как SharedPreference на смарте). &lt;?xml...

Поиск кнопок в другом приложении
Помогите) Пользователь выбирает приложение,в этом приложении нужно найти все...

Как сделать поиск в веб-приложении?
Всем привет! Практикуюсь в разработке веб-приложения, где нужно осуществить...

4
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
10.04.2014, 18:40 2
Nachinka, а почему нет, можно и так. Можете использовать не EditText, а SearchView (http://developer.android.com/reference/android/widget/SearchView.html)
+ бросается в глаза то, что когда пользователь наживает ок на клавиатуре - поиск происходит, но клавиатура не исчезает.
1
Nachinka
11 / 11 / 0
Регистрация: 19.02.2014
Сообщений: 95
10.04.2014, 19:58  [ТС] 3
Цитата Сообщение от YuraAAA Посмотреть сообщение
+ бросается в глаза то, что когда пользователь наживает ок на клавиатуре - поиск происходит, но клавиатура не исчезает.
Хм..А как этого избежать?)

Или это только при использовании SearchView?
0
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
11.04.2014, 18:58 4
Лучший ответ Сообщение было отмечено Nachinka как решение

Решение

Nachinka,
Java
1
2
3
4
InputMethodManager imm = (InputMethodManager)getSystemService(
      Context.INPUT_METHOD_SERVICE);
 
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
1
Nachinka
11 / 11 / 0
Регистрация: 19.02.2014
Сообщений: 95
11.04.2014, 22:06  [ТС] 5
Если я правильно понял это в листенер едит текста:

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
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.TextView;
 
public class ViewActivity extends Activity {
    TextView tvView;
    EditText searchtext;
    TextView txtv;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.two);
        searchtext = (EditText) findViewById(R.id.editText1);
        txtv = (TextView) findViewById(R.id.textView1);
        Intent intent = getIntent();
        String fName = intent.getStringExtra("fname");
 
        searchtext.setText(fName);
 
        searchtext.setOnKeyListener(new View.OnKeyListener() {
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                if (event.getAction() == KeyEvent.ACTION_DOWN
                        && (keyCode == KeyEvent.KEYCODE_ENTER)) {
                    
                    InputMethodManager imm = (InputMethodManager)getSystemService(
                              Context.INPUT_METHOD_SERVICE);
                    imm.hideSoftInputFromWindow(searchtext.getWindowToken(), 0);
                    
                    String strCatName = searchtext.getText().toString();
                    ReadSearchdata(strCatName);
                    return true;
                }
                return false;
            }
 
        });
    }
 
    protected void ReadSearchdata(String strCatName) {
        if (strCatName.equals("pit")) {
            txtv.setText("Питер - хороший город!");
        }
    }
}
0
11.04.2014, 22:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.04.2014, 22:06

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

Поиск и замена в запущенном приложении определенного текста
Ребят! Помогите дописать код. Программа должна искать в запущенном приложении...

Небольшой апгрейд
Данная сборка: Плата: ASUS LGA1155 P8H77-V LE H77 Процессор: i5 2310 2.9GHz...


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

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

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