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

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

02.07.2018, 08:20. Просмотров 470. Ответов 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
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2018, 08:20
Ответы с готовыми решениями:

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

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

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

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

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

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

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

Как вернуть все обратно после использования восстановление системы?
Помогите пожалуйста!!! Как вернуть все обратно после использования восстановление системы?

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


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

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

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