Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Gor_Then
0 / 0 / 0
Регистрация: 08.03.2018
Сообщений: 9
1

ListView после обновлений данных также обратно через нажатие кнопки вернуть старые данные назад

02.07.2018, 08:20. Просмотров 400. Ответов 2
Метки нет (Все метки)

Я работаю с ассортиментом для продаж ,которого JSON файла сохраняю локально.В ListView я передаю сначала весь ассортимент у которого нет родителя,то есть все у кого ParentUid нули.Потом при нажатие на папки я обновляю ListView и показываю все что находится в этой папке и так много раз,но если хочу вернуться назад, к примеру на 2-3 уровни папок назад не могу, могу только на 1 уровень.
Вот что у меня есть:
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
import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
 
public class ASLActivity extends AppCompatActivity {
    String A_JSon;
    ListView asl_view;
    String guid_parent;
    String guid;
    ImageButton back;
    TextView guid_view;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_asl);
 
        SharedPreferences sPref = getSharedPreferences("Save setting", MODE_PRIVATE);
        A_JSon = (sPref.getString("JSONObject", ""));
        guid_parent= "00000000-0000-0000-0000-000000000000";//я указываю ParentUid для отображения всех у которых нет родителя
        asl_view = findViewById(R.id.list_aslsale);
        back=findViewById(R.id.btn_cancel_select_);
        guid_view = findViewById(R.id.textView_guid);
        initASLList();
        final SimpleAdapter simpleAdapterASL = new SimpleAdapter(this, asl_list,R.layout.tesrt, new String[]{"Name","icon"}, new int[]{R.id.text_test,R.id.image_view_asl_xm});
        asl_view.setAdapter(simpleAdapterASL);
        guid_view.setText("");
 
        asl_view.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
               guid_parent = (String) asl_list.get(position).get("Uid_");
               guid =(String) asl_list.get(position).get("Parent_uid") ;
//guid_view поставил для проверки себя
               guid_view.append("guid:"+guid+ "\n");
               guid_view.append("P_guid:"+guid_parent+ "\n");
               asl_list.clear();
                initASLList();
                asl_view.setAdapter(simpleAdapterASL);
                simpleAdapterASL.notifyDataSetChanged();
               
            }
        });//OnClickListener
 
        View.OnClickListener back_btn = new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                guid_parent=guid;
                asl_list.clear();
                initASLList();
                asl_view.setAdapter(simpleAdapterASL);
                simpleAdapterASL.notifyDataSetChanged();
            }
        };
        back.setOnClickListener(back_btn );
    }//onCreate
 
    ArrayList<HashMap<String, Object>> asl_list = new ArrayList<>();
 
    private void initASLList() {
        try {
            JSONObject asl_json = new JSONObject(A_JSon);
            JSONArray asl_array = asl_json.getJSONArray("AssortimentList");
            for (int i = 0; i < asl_array.length(); i++) {
                JSONObject object = asl_array.getJSONObject(i);
                String asl_name = object.getString("Name");
                String uid_asl = object.getString("Uid");
                Integer price = object.getInt("Price");
                Boolean is_folder = object.getBoolean("IsFolder");
                String parents_uid = object.getString("ParentUid");
                Boolean paranoid = parents_uid.contains(guid_parent);
                HashMap<String, Object> asl_ = new HashMap<>();
                if (paranoid) {
                    if (!is_folder){
                        String Asl = asl_name + "     Price:" + String.valueOf(price);
                        asl_.put("icon",R.mipmap.is_assortiment);
                        asl_.put("Name", Asl);
                        asl_list.add(asl_);
                    }else {
                        asl_.put("Parent_uid",parents_uid);
                        asl_.put("Name", asl_name);
                        asl_.put("Uid_",uid_asl);
                        asl_.put("icon",R.mipmap.folder);
                        asl_list.add(asl_);
                    }
                }
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    } //initASLList
}
Это то что в xml:
XML
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
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".ASLActivity">
    <ListView
        android:id="@+id/list_aslsale"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">
 
    </ListView>
 
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
 
 
        <ImageButton
            android:id="@+id/btn_cancel_select_"
            android:layout_width="wrap_content"
            android:layout_height="70dp"
            android:layout_weight="0"
            app:srcCompat="@android:drawable/ic_input_delete" />
<ScrollView
    android:layout_width="wrap_content"
    android:layout_height="match_parent">
    <TextView
        android:id="@+id/textView_guid"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />
</ScrollView>
    </LinearLayout>
И пример JSON-го файла с ассортиментом:
JSON
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
{
            "AllowNonIntegerSale": true,
            "AllowSaleOnlyAsKitMember": false,
            "Comments": null,
            "IsFolder": true,
            "KitMembers": null,
            "MandatoryComment": false,
            "Name": "Колбаса PEGAS",
            "ParentUid": "27488b7b-b264-4d02-8f49-669430741b4a",
            "Price": 0,
            "PricelineUid": "00000000-0000-0000-0000-000000000000",
            "Uid": "98437bb2-3481-4782-9cc5-50408d3445e9"
        },
        {
            "AllowNonIntegerSale": false,
            "AllowSaleOnlyAsKitMember": false,
            "Comments": null,
            "IsFolder": true,
            "KitMembers": null,
            "MandatoryComment": false,
            "Name": "Pizza",
            "ParentUid": "fe9ec036-66b5-435b-b34c-e7b524b0ec7c",
            "Price": 0,
            "PricelineUid": "00000000-0000-0000-0000-000000000000",
            "Uid": "82774b8a-37f7-4c5a-bda8-250644348b7e"
        },
        {
            "AllowNonIntegerSale": false,
            "AllowSaleOnlyAsKitMember": false,
            "Comments": null,
            "IsFolder": true,
            "KitMembers": null,
            "MandatoryComment": false,
            "Name": "Супы",
            "ParentUid": "00000000-0000-0000-0000-000000000000",
            "Price": 0,
            "PricelineUid": "00000000-0000-0000-0000-000000000000",
            "Uid": "bb8ba8c4-4ab6-43fb-b88e-597bd697cf52"
        }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2018, 08:20
Ответы с готовыми решениями:

RxJava вернуть данные назад
Создал метод generatePlayer(String, String, ApiService) в нем использую...

ListView. После добавления кнопки перестал быть доступен сам ListView
Кастомизировал ListView с помощью нескольких TextView. Но после того, как...

Как обработать нажатие кнопки "Назад", чтобы открывался рекламный баннер?
Требуется помощь. Начал осваивать это все недавно. Расскажу суть идеи: создав...

Как в ListView обработать нажатие кнопки и изменить здесь же значение в textView ?
У меня есть ListView, у него есть своя разметка на которой находится строчки на...

Добавление в базу данных через нажатие кнопки
вопрос вот в чем, при добавлении в БД из формы, в таблице создается новая...

2
ExFau$t
679 / 570 / 131
Регистрация: 08.05.2012
Сообщений: 2,823
02.07.2018, 09:11 2
Вопрос какой?
0
Gor_Then
0 / 0 / 0
Регистрация: 08.03.2018
Сообщений: 9
28.07.2018, 17:00  [ТС] 3
нужно было вернуться назад, что то подобное : отобразил список, при нажатий на позицию ,в этот же lis view отображаю все у кого в ParentUid есть Uid нажатой позиций ,и так далее. Мне нужно было сделать обратное, я решил не усложнять и сделал кнопку домой ,то есть отображаю всех у кого ParentUid нули , и опять поочередно при нажатий на позицию отображаю все у кого в ParentUid есть Uid нажатой позиций. Спасибо,тема закрыта!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.07.2018, 17:00

Смена подписи кнопки на метку и обратно при нажатие
Начали в универе изучать QT Creator и тут встал на задаче: При нажатие кнопки...

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

Как вернуть обратно записи после фильтрации
Доброго времени суток. У меня такой вопрос. Я создал в программе фильтр. Данные...


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

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

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