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

Загрузка двухуровнего списка - Android

Войти
Регистрация
Восстановить пароль
 
ExFau$t
55 / 55 / 4
Регистрация: 08.05.2012
Сообщений: 448
30.10.2015, 09:46     Загрузка двухуровнего списка #1
Здравствуйте, нужно загрузить двухуровневый список, то есть в идеале сначала главный уровень, а по нажатию загрузить дочерний и отобразить. Разные варианты испробовал, вот наиболее удачный, грузится все сразу, причем вперемешку, что первое загрузится, то и запихивается в очередной дочерний список. Ну и onFinish() мне не нравится, что-то в нем не так. Пробовал поставить слушатель нажатия в финиш загрузки главного списка, и в самом нажатии уже грузить нужный подсписок, но там вообще не вышло, да и финиш внутреннего списка как-то неправильно работает. Короче затупил, нужна помощь.
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
final AsyncHttpClient client = new AsyncHttpClient();
        client.get(url1, new JsonHttpResponseHandler() {
 
            @Override
            public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
                super.onSuccess(statusCode, headers, response);
                try {
                    SharedPreferences.Editor ed = sp.edit();
                    JSONArray loc = response.getJSONArray("locales");
                    ed.putInt("admNom", loc.length() - 1);//test region
                    int k = 0;
                    for (int i = 0; i < loc.length(); i++) {
                        JSONObject obj = loc.getJSONObject(i);
                        if (obj.getInt("_id") != 157) {
                            ed.putString("admregion" + Integer.toString(i), obj.getString("name") + "|#|" + Integer.toString(obj.getInt("_id")));
                            mGroupsArray[k] = obj.getString("name");
                            client.get(url2, new JsonHttpResponseHandler() {
 
                                @Override
                                public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
                                    super.onSuccess(statusCode, headers, response);
                                    try {
                                        SharedPreferences.Editor ed = sp.edit();
                                        JSONArray loc = response.getJSONArray("locales");
                                        ed.putInt("regNom", loc.length());
                                        ArrayList<Map<String, String>> сhildDataItemList = new ArrayList<>();
                                        for (int i = 0; i < loc.length(); i++) {
                                            JSONObject obj = loc.getJSONObject(i);
                                            ed.putString("regregion" + Integer.toString(i), obj.getString("name") + "|#|" + Integer.toString(obj.getInt("_id")));
                                                map = new HashMap<>();
                                                map.put("regName", obj.getString("name"));
                                                сhildDataItemList.add(map);
 
                                        }
                                        сhildDataList.add(сhildDataItemList);
                                        ed.apply();
                                        //onFinish();
                                      } catch (JSONException e) {
                                          e.printStackTrace();
                                      }
                                 }
                            });
                            k++;
                        }
                    }
                    ed.apply();
                    onFinish();
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
 
            @Override
            public void onFinish() {
                ArrayList<Map<String, String>> groupDataList = new ArrayList<>();
                сhildDataList = new ArrayList<>();
 
                for (int i=0;i<sp.getInt("admNom",0);i++) {
                    map = new HashMap<>();
                    map.put("admName", mGroupsArray[i]); // время года
                    groupDataList.add(map);
                }
 
                String groupFrom[] = new String[] { "admName" };
                int groupTo[] = new int[] { android.R.id.text1 };
                String childFrom[] = new String[] { "regName" };
                int childTo[] = new int[] { android.R.id.text1 };
                SimpleExpandableListAdapter adapter = new SimpleExpandableListAdapter(
                        getApplicationContext(), groupDataList,
                        android.R.layout.simple_expandable_list_item_1, groupFrom,
                        groupTo, сhildDataList, android.R.layout.simple_list_item_1,
                        childFrom, childTo);
                ExpandableListView expandableListView = (ExpandableListView) findViewById(R.id.expListView);
                expandableListView.setAdapter(adapter);
                }
 
 
        });
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2015, 09:46     Загрузка двухуровнего списка
Посмотрите здесь:

Android Загрузка картинки
долгая загрузка Android
Android Загрузка изображения
Загрузка файла с сервера Android
Загрузка 3D модели Android
Android Загрузка ЦПУ в процентах
Android Загрузка изображения
Android Сохранение и загрузка
Загрузка внутрь приложения Android
Загрузка файла по URL Android
Загрузка изображения в imageview Android
Загрузка текста с сайта Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zoleg
14 / 14 / 1
Регистрация: 10.01.2012
Сообщений: 105
03.11.2015, 10:17     Загрузка двухуровнего списка #2
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
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
public class NotRegisteredYetActivity extends Activity implements AdapterView.OnItemSelectedListener, View.OnClickListener {
 
    private TableRow tableRow0;
    private TextView candidatSMSInfoTV;
    private TableRow tableRow1;
    private TextView countryTextView;
    Spinner spinnerCountry;
    private TableRow tableRow2;
    private TextView citytextView;
    Spinner spinnerCity;
    private TableRow tableRow3;
    private TextView phonetextView2;
    private TableRow tableRow4;
    private TextView carModelTextView;
    private TableRow tableRow5;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        setContentView(R.layout.activity_not_registered_yet);
 
        tableRow0 = (TableRow) findViewById(R.id.TableRow0);
        candidatSMSInfoTV = (TextView) findViewById(R.id.candidatSMSInfoTV);
        tableRow1 = (TableRow) findViewById(R.id.tableRow1);
        countryTextView = (TextView) findViewById(R.id.countryTextView);
        tableRow2 = (TableRow) findViewById(R.id.tableRow2);
        citytextView = (TextView) findViewById(R.id.citytextView);
        tableRow3 = (TableRow) findViewById(R.id.tableRow3);
        phonetextView2 = (TextView) findViewById(R.id.phonetextView2);
        tableRow4 = (TableRow) findViewById(R.id.tableRow4);
        carModelTextView = (TextView) findViewById(R.id.carModelTextView);
        tableRow5 = (TableRow) findViewById(R.id.tableRow5);
        findViewById(R.id.sendSmsButton).setOnClickListener(this);
        findViewById(R.id.buttonNoCity).setOnClickListener(this);
        spinnerCountry = (Spinner) findViewById(R.id.spinnerCountry);
        spinnerCity = (Spinner) findViewById(R.id.spinnerCity);
        spinnerCountry.setOnItemSelectedListener(this);
 
        // smsManager = SmsManager.getDefault();
    }
 
    @Override
    public void onItemSelected(AdapterView<?> parent, View arg1, int pos,
                               long arg3) {
        parent.getItemAtPosition(pos);
        if (pos == 1) {
            ArrayAdapter<CharSequence> adapter = ArrayAdapter
                    .createFromResource(this, R.array.city_ru_arrays,
                            android.R.layout.simple_spinner_item);
            spinnerCity.setAdapter(adapter);
            TetTempoDate.temp_str_5 = "+3XXXXXXXXXXXX";
        } else if (pos == 2) {
            ArrayAdapter<CharSequence> adapter = ArrayAdapter
                    .createFromResource(this, R.array.city_ua_arrays,
                            android.R.layout.simple_spinner_item);
            spinnerCity.setAdapter(adapter);
            TetTempoDate.temp_str_5 = "+3XXXXXXXXXXXX";
        } else if (pos == 3) {
            ArrayAdapter<CharSequence> adapter = ArrayAdapter
                    .createFromResource(this, R.array.city_by_arrays,
                            android.R.layout.simple_spinner_item);
            spinnerCity.setAdapter(adapter);
            TetTempoDate.temp_str_5 = "+3XXXXXXXXXXXX";
        } else if (pos == 4) {
            ArrayAdapter<CharSequence> adapter = ArrayAdapter
                    .createFromResource(this, R.array.city_by_arrays,
                            android.R.layout.simple_spinner_item);
            spinnerCity.setAdapter(adapter);
            TetTempoDate.temp_str_5 = "+3XXXXXXXXXXXX";
        }
        spinnerCity.setOnItemSelectedListener(
 
                new AdapterView.OnItemSelectedListener() {
                    @Override
 
                    public void onItemSelected(AdapterView<?> parent, View itemSelected,
 
                                               int selectedltemPosition, long selectedId) {
 
                        parent.getItemAtPosition(selectedltemPosition);
                        String pos = (String) parent.getItemAtPosition(selectedltemPosition);
 
                        TetTempoDate.temp_str_1 = pos;
                    }
 
                    @Override
                    public void onNothingSelected(AdapterView<?> parent) {
 
                    }
 
                    //… Other required overrides
 
                });
    }
 
 
    private void setTemp() {
        TextView phoneField = (TextView) findViewById(R.id.phoneField);
        TextView carField = (TextView) findViewById(R.id.carModelField);
        TetTempoDate.temp_str_2 = phoneField.getText().toString();
        TetTempoDate.temp_str_3 = carField.getText().toString();
        //Эксперементы////////////////////
        android.util.Log.d("NotRegisteredYet", "!!!!!!!!!!!!!!!!! DEBUG DELATE AFTER ALL!!!  itemSelected " + TetTempoDate.temp_str_1 + " phone " + TetTempoDate.temp_str_2 + " car " + TetTempoDate.temp_str_3 + "");
        //////////////////////////////////////////////////
    }
 
 
    @Override
    public void onNothingSelected(AdapterView<?> arg0) {
    }
 
    private EditText getEditText() {
        return (EditText) findViewById(R.id.phoneField);
    }
 
    private EditText getCarModelField() {
        return (EditText) findViewById(R.id.carModelField);
    }
 
    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.sendSmsButton:
                //TODO implement
                setTemp();
 
                String smsMessage = "" + getString(R.string.cityWork) + " " + TetTempoDate.temp_str_1 + "  " + getString(R.string.phoneLabelText) + " " + TetTempoDate.temp_str_2 + "  " + getString(R.string.carModel) + " " + TetTempoDate.temp_str_3 + "";
                //Эксперементы////////////////////
                android.util.Log.d("NotRegisteredYet", "!!!!!!!!!!!!!!!!! DEBUG DELATE AFTER ALL!!!  smsMessage " + smsMessage + "");
                //////////////////////////////////////////////////
                String phone = TetTempoDate.temp_str_5;
                sendSMS(phone, smsMessage);
                break;
            case R.id.buttonNoCity:
                //TODO implement
                Intent tAt = new Intent(getApplicationContext(), mobi.tet_a_tet.atda.tet_a_tet.allerts_dialogs.IwantTetAtteActivity.class);
                tAt.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(tAt);
                finish();
                break;
        }
 
 
    }
 
 
    private void sendSMS(String phoneNumber, String message) {
 
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("sms:" + phoneNumber));
        intent.putExtra("sms_body", message);
        startActivity(intent);
//
//        Intent sendIntent=new Intent(Intent.ACTION_VIEW);
//        sendIntent.putExtra("sms_body","Content of the SMS goes here...");
//        sendIntent.setType("vnd.android-dir/mms-sms");
//        startActivity(sendIntent);
//
//
//        String SENT="SMS_SENT";
//        String DELIVERED="SMS_DELIVERED";
//
//        PendingIntent sentPI= PendingIntent.getBroadcast(this, 0,
//                new Intent(SENT), 0);
//
//        PendingIntent deliveredPI= PendingIntent.getBroadcast(this, 0,
//                new Intent(DELIVERED), 0);
//
//
////---когда SMS отправлено---
//        registerReceiver(new BroadcastReceiver(){
//            @Override
//            public void onReceive(Context arg0, Intent arg1){
//                switch(getResultCode())
//                {
//                    case Activity.RESULT_OK:
//                        Toast.makeText(getBaseContext(), "SMS sent",
//                                Toast.LENGTH_SHORT).show();
//                        break;
//                    case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
//                        Toast.makeText(getBaseContext(),"Generic failure",
//                                Toast.LENGTH_SHORT).show();
//                        break;
//                    case SmsManager.RESULT_ERROR_NO_SERVICE:
//                        Toast.makeText(getBaseContext(),"No service",
//                                Toast.LENGTH_SHORT).show();
//                        break;
//                    case SmsManager.RESULT_ERROR_NULL_PDU:
//                        Toast.makeText(getBaseContext(),"Null PDU",
//                                Toast.LENGTH_SHORT).show();
//                        break;
//                    case SmsManager.RESULT_ERROR_RADIO_OFF:
//                        Toast.makeText(getBaseContext(),"Radio off",
//                                Toast.LENGTH_SHORT).show();
//                        break;
//                }
//            }
//        },new IntentFilter(SENT));
//
////---когда SMS доставлено---
//        registerReceiver(new BroadcastReceiver() {
//            @Override
//            public void onReceive(Context arg0, Intent arg1) {
//                switch (getResultCode()) {
//                    case Activity.RESULT_OK:
//                        Toast.makeText(getBaseContext(), "SMS delivered",
//                                Toast.LENGTH_SHORT).show();
//                        break;
//                    case Activity.RESULT_CANCELED:
//                        Toast.makeText(getBaseContext(), "SMS not delivered",
//                                Toast.LENGTH_SHORT).show();
//                        break;
//                }
//            }
//        }, new IntentFilter(DELIVERED));
//
//        SmsManager sms= SmsManager.getDefault();
//        sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);
 
    }
}

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
    <string-array name="country_arrays">
        <item>Укажите страну</item>
        <item>Россия</item>
        <item>Украина</item>
        <item>Беларусь</item>
    </string-array>
 
    <string-array name="city_ru_arrays">
        <item>Укажите город</item>
        <item>Ижевск</item>
        <item>Ковров</item>
        <item>Тазовский</item>
        <item>Воткинск</item>
        <item>Шадки</item>
        <item>Череповец</item>
    </string-array>
 
    <string-array name="city_ua_arrays">
        <item>Укажите город</item>
        <item>Белая Церковь</item>
        <item>Бердичев</item>
        <item>Казатин</item>
        <item>Кельменцы</item>
        <item>Новомосковск</item>
        <item>Мироновка</item>
        <item>Мукачево</item>
        <item>Рубежное</item>
        <item>Симферополь</item>
        <item>Ужгород</item>
        <item>Житомир</item>
    </string-array>
 
    <string-array name="city_by_arrays">
        <item>Укажите город</item>
        <item>Лепель</item>
    </string-array>
Yandex
Объявления
03.11.2015, 10:17     Загрузка двухуровнего списка
Ответ Создать тему
Опции темы

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