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

Получить JSON и передать все его параметры его в Intent. Использован автофильтр - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Как поменять названия кнопок местами в Java? http://www.cyberforum.ru/android-dev/thread1550042.html
есть поле из 5 кнопок с числами(названиями кнопок) от 1 до 5. Помогите написать код для того чтобы менять местами числа(названия) кнопок любую на любую. проблема в запоминании первой кнопки, чтобы...
Программирование Android Реализовать плагины для приложения Всем привет. Не знаю как правельней назвать то что мне нужно, но больше всего подходит плагин. Словом нужно часть ресурсов в внешнии приложения. Такое встречается во многих приложениях, например... http://www.cyberforum.ru/android-dev/thread1549963.html
Программирование Android Не открывает картинку через switch case
@Override public void onCheckedChanged(RadioGroup group, int checkedId) { switch(checkedId) { case R.id.radioButton1: ...
Программирование Android NavigationView выделить выбранный элемент
Здравствуйте! Никак не пойму, как в NavigationView выделить пункт меню. menuItem.setChecked(true); doesn't work. Меню строится программно, т.к. заранее неизвестно количество элементов. Вот сам...
Программирование Android Mapsforge kinetic scrooling http://www.cyberforum.ru/android-dev/thread1549696.html
как реализовать kinetic scrooling для mapsforge карты
Программирование Android Подсчет трафика раздельно по двум сим (Андроид < 5.1) Добрый день! Нужна помощь по теме. Я долго искал в интернете, расковырял родной Settings.apk и обнаружил там использование следующих классов import android.net.INetworkStatsService; import... подробнее

Показать сообщение отдельно
Adverte
0 / 0 / 0
Регистрация: 14.04.2015
Сообщений: 7

Получить JSON и передать все его параметры его в Intent. Использован автофильтр - Программирование Android

12.10.2015, 04:33. Просмотров 381. Ответов 3
Метки (Все метки)

Всем привет. Я тут запутался, помогите разобраться.
Стоит задача выполнить такой функционал: получить данные JSON, один из параметров JSON формирует выпадающий список автозаполнения, по нажатию на элемент данные выбранного элемента должны попасть в Intent

Сейчас сделано применительно к одному параметру "name", он отображается в поле ввода и по готовности берётся из поля ввода и добавляется в Intent. Это работает. Как включить в ответ остальные неотображаемые но полученные в JSON другие параметры ("code", "rname")

Что сделано
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
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.autocomplete);
        
        mText = (TextView)findViewById(R.id.text);
        mAutoComplete = (AutoCompleteTextView) findViewById(R.id.auto_complete);
        ArrayAdapter<String> adapter = new PlacesAutoCompleteAdapter(this, R.layout.list_item);
        mAutoComplete.setAdapter(adapter);
 
        mAutoComplete.setOnItemClickListener(this);  //отрабатывает нажатия на список
    
    }
    
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
        String str = (String) adapterView.getItemAtPosition(position);
        enterClicked(str);
    }
    
    protected void enterClicked(String str) {  
        // TODO Auto-generated method stub
        Intent result = new Intent();
        result.putExtra(TAG, str);
        setResult(RESULT_OK, result);
 
        // TODO - Finish the Activity
        finish();
    }
файл PlacesAutoCompleteAdapter.java запрашивает и обрабатывает JSON, формирует список автозаполнения
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
public class PlacesAutoCompleteAdapter extends ArrayAdapter<String> implements Filterable {
    private ArrayList<String> resultList;
    private ConnectTask bgt;
<..>
   public PlacesAutoCompleteAdapter(Context context, int textViewResourceId) {
        super(context, textViewResourceId);
    }
 
    private ArrayList<String> autocomplete(String input) {
        ArrayList<String> citylist = null;
    
    List<NameValuePair> apiParams = new ArrayList<NameValuePair>(2);
        apiParams.add(new BasicNameValuePair("appKey", "XXXXXXXXXXXXXXXXX"));
        apiParams.add(new BasicNameValuePair("requestText", input));
        bgt = new ConnectTask(MAP_API_URL, "POST", apiParams);  //запрашивает сервер  и получает JSON
        
        try {
            JSONArray cityJSON = bgt.execute().get();
            
            citylist = new ArrayList<String>(cityJSON.length());
            // looping through all citylist
            for (int i = 0; i < cityJSON.length(); i++) {
 
                JSONObject d = cityJSON.getJSONObject(i);
 
                // Storing each json item in variable
 
                String rname = d.getString(REGNAME);
                String srch = d.getString(SEARCH);
                String code = d.getString(CODE);
                String name = d.getString(NAME);
 
                citylist.add(new String(name));  // добавляем один параметр по нему и фильтруем
 
            } //for
        } //try
        catch (Exception e) {
            Log.e("Buffer Error1", "Error converting result " + e.toString());
        }
            return citylist;
    }
 
//ниже в коде реализована работа автофильтра
    @Override
    public int getCount() {
        return resultList.size();
    }
 
    @Override
    public String getItem(int index) {
        return resultList.get(index);
    }
 
    @Override
    public Filter getFilter() {
        Filter filter = new Filter() {
            @Override
            protected FilterResults performFiltering(CharSequence constraint) {
                FilterResults filterResults = new FilterResults();
                if (constraint != null) {
                    // Retrieve the autocomplete results.
                    resultList = autocomplete(constraint.toString());
 
                    // Assign the data to the FilterResults
                    filterResults.values = resultList;
                    filterResults.count = resultList.size();
                }
                return filterResults;
            }
 
            @Override
            protected void publishResults(CharSequence constraint, FilterResults results) {
                if (results != null && results.count > 0) {
                    notifyDataSetChanged();
                }
                else {
                    notifyDataSetInvalidated();
                }
            }};
        return filter;
    }
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru