С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Ошибка в setAdapter - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Поиск по фото http://www.cyberforum.ru/android-dev/thread1729364.html
Подскажите куда копать? Задача в базе к примеру есть 10 фото, с камеры получаю фото и надо по этому фото надо найти такого же человека в фото в базе
Программирование Android Большая БД Люди дорогие помогите кто может чем может, скиньте ссылки, материалы по готовым базам данных, а то я подключил а как работать с ней хз SimpleCursorAdapter хочет от меня _id но база большая и я не... http://www.cyberforum.ru/android-dev/thread1729338.html
JMonkeyEngine, как использовать на Андроид? Программирование Android
Как использовать jME на андроид? (желательно в android studio)
Расположение объектов на форме Программирование Android
Помогите пожалуйста, как сверстать страницу так, что бы свич не уползал когда много текста в центре? <android.support.v7.widget.CardView ...
Программирование Android JSONObject http://www.cyberforum.ru/android-dev/thread1729187.html
Подскажите в чем ошибка? Ругается, но не критично. И могу понять записываются ли данные дальше в базу. public void invokeProfile() { AsyncHttpClient client = new AsyncHttpClient(); ...
Программирование Android Добавить иконку приложения Как в Toolbar добавить значек перед названием приложения? в xml подробнее

Показать сообщение отдельно
goodi_tomsk
4 / 1 / 0
Регистрация: 12.05.2015
Сообщений: 84

Ошибка в setAdapter - Программирование Android

08.05.2016, 07:04. Просмотров 493. Ответов 12
Метки (Все метки)

Ковыряюсь 2 дня, не могу сам разобраться. Предполагаю, что накосячил с контекстом...
Ошибка в setAdapter

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
public class FragmentParsing extends Fragment {
 
    View listParsing, parsingView;
    String total, last;
    TextView tvTotal, tvLast;
 
    public FragmentParsing() {
    }
 
    // URL для загрузки JSON
    private static String url = "http://quotes.zennex.ru/api/v3/bash/quotes?sort=time";
 
    // JSON Node names
    private static final String TAG_TOTAL = "total";
    private static final String TAG_LAST = "last";
    private static final String TAG_QUOTES = "quotes";
    private static final String TAG_ID = "id";
    private static final String TAG_DESCRIPTION = "description";
    private static final String TAG_TIME = "time";
    private static final String TAG_RATING = "rating";
 
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState)  {
 
        parsingView = inflater.inflate(R.layout.fragment_parsing, container, false);
        listParsing = parsingView.findViewById(R.id.list);
        tvTotal = (TextView) parsingView.findViewById(R.id.tvTotal);
        tvLast = (TextView) parsingView.findViewById(R.id.textView3);
 
        // вызов async task для получения json
        new GetQuotes().execute();
 
 
        tvTotal.setText(total);
        tvLast.setText(last);
 
        super.onSaveInstanceState(savedInstanceState);
        return parsingView;
    }
 
    /**
     * Async task класс для получения json и HTTP запроса
     * В методе onPreExecute добавляем индикатор загрузкипрежде чем  начнем HTTP запрос
     * В doInBackground вызываем метод makeWebServiceCall для получения JSON и ParseJSON для парсинга данных из JSON
     * В onPostExecute отключаем диалог индикатора загрузки и создаем list Adapter и устанавливаем в ListView.
     */
    public class GetQuotes extends AsyncTask<Void, Void, Void> {
 
        // Hashmap для ListView
        ArrayList<HashMap<String, String>> quotesList;
        ProgressDialog pDialog;
 
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            // показываем диалог индикатора загрузки
            pDialog = new ProgressDialog(listParsing.getContext());
            pDialog.setMessage(getResources().getString(R.string.downloading));
            pDialog.setCancelable(false);
            pDialog.show();
        }
 
        @Override
        protected Void doInBackground(Void... arg0) {
            // создаем объект service handler class
            WebRequest webreq = new WebRequest();
 
            // создаем запрос к url и получаем ответ
            String jsonStr = webreq.makeWebServiceCall(url, WebRequest.GET);
 
            Log.d("Response: ", "> " + jsonStr);
 
            quotesList = ParseJSON(jsonStr);
 
            return null;
        }
 
        @Override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);
            // закрываем диалог индикатора загрузки
            if (pDialog.isShowing())
                pDialog.dismiss();
            /**
             * Обновляем парсированную информацию из JSON в ListView
             */
//            ArrayAdapter<HashMap<String, String>> adapter = new ArrayAdapter<>(
//                    list.getContext(),R.layout.list_item, quotesList);
            ListAdapter adapter = new SimpleAdapter(listParsing.getContext(), quotesList,
                    R.layout.list_parsing, new String[]{TAG_ID, TAG_DESCRIPTION,
                    TAG_TIME, TAG_RATING}, new int[]{R.id.tvId,
                    R.id.tvDesc, R.id.tvTime, R.id.tvRating});
 
            ((ListView)listParsing).setAdapter(adapter);
        }
    }
 
    private ArrayList<HashMap<String, String>> ParseJSON(String json) {
        if (json != null) {
            try {
                // Hashmap для ListView
                ArrayList<HashMap<String, String>> qoutesList = new ArrayList<HashMap<String, String>>();
 
                JSONObject jsonObj = new JSONObject(json);
 
                total = jsonObj.optString(TAG_TOTAL);
                last = jsonObj.optString(TAG_LAST);
 
                // получаем JSON Array узел
                JSONArray quotes = jsonObj.getJSONArray(TAG_QUOTES);
 
                // проходимся по массиву
                for (int i = 0; i < quotes.length(); i++) {
                    JSONObject c = quotes.getJSONObject(i);
 
                    String id = c.getString(TAG_ID);
                    String description = c.getString(TAG_DESCRIPTION);
                    String time = c.getString(TAG_TIME);
                    String rating = c.getString(TAG_RATING);
 
                    // hashmap для одного пункта
                    HashMap<String, String> oneItem = new HashMap<String, String>();
 
                    // добавляем каждый дочерний пункт в HashMap ключ-значение
                    oneItem.put(TAG_ID, id);
                    oneItem.put(TAG_DESCRIPTION, description);
                    oneItem.put(TAG_TIME, time);
                    oneItem.put(TAG_RATING, rating);
 
                    // добавляем в лист
                    qoutesList.add(oneItem);
                }
                return qoutesList;
            } catch (JSONException e) {
                e.printStackTrace();
                return null;
            }
        } else {
            Log.e("ServiceHandler", "Не могу получить данные!");
            return null;
        }
    }
    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
 
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.