powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / Как сохранить выбранные каталогию. (Android)
5 сообщений из 5, страница 1 из 1
Как сохранить выбранные каталогию. (Android)
    #38382079
GLOCTARR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне нужно как-то сохранять выбранные каталоги, чтобы потом передать этот список, так же , когда перемещаюсь по каталогом , выбранные не сбрасывались. Может кто подскажет что почитать или как реализовать это.
Мой код:CustomizwsFolders.java
Код: 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.
package com.osinit.bitsfusion.service;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import android.app.ListActivity;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.ListView;

public class CustomizesFolders extends ListActivity {

    private List<Model> item = null;
    private String root ; 
    private File mCurrentDirectory;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.customizes_folders);
        root = Environment.getExternalStorageDirectory().getPath();
        getDir(root); 
        
    }

    //   выводит список папок 
    private void getDir(String dirPath) {
        mCurrentDirectory = new File(dirPath);
        item = new ArrayList<Model>();
        File f = new File(dirPath);
        File[] files = f.listFiles(); 
        // если мы не в корневой папке
        if (!dirPath.equals(root)) {
            item.add(getModel("../", f.getParent()));
        }

        // формируем список папок и файлов для передачи адаптеру
        for (int i = 0; i < files.length; i++) {
            File file = files[i];
            if(!file.isHidden() && file.canRead()){
            	if (file.isDirectory())
                	item.add(getModel(file.getName(), file.getPath()));            	
            }
        } 
        CustomizesAdapter adapter = new CustomizesAdapter(this, item);
        setListAdapter(adapter);
    }
    
    private Model getModel(String name, String path){
        return new Model(name, path);
    }
    
    @Override
    public void onBackPressed() {
        if (mCurrentDirectory.getAbsolutePath().equals(root)) {
            super.onBackPressed();
            return;
        }
        upOneLevel();
    }
    
 //перейти на parent директорию
    private void upOneLevel() {
        if (mCurrentDirectory.getParent() != null) {
            getDir(mCurrentDirectory.getParent());
        }
    }
    
    public void onCancelClick(View v) {
        setResult(RESULT_CANCELED);
        finish();
    }
    
  // обработка нажатий на элементах списка
    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        File file = new File(item.get(position).getPath());
     // если она доступна для просмотра, то заходим в неё
        if (file.canRead()) 
            getDir(file.getPath());
            
           
    } 
}



CustomizesAdapter.java
Код: 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.
package com.osinit.bitsfusion.service;

import java.util.List;

import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;

public class CustomizesAdapter extends ArrayAdapter<Model> {

    private final List<Model> mList;
    private final Activity mContext;

    public CustomizesAdapter(Activity context, List<Model> list) {
        super(context, R.layout.rowbutton, list);
        this.mContext = context;
        this.mList = list;
    }

    static class ViewHolder {
        protected TextView text;
        protected CheckBox checkbox;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = null;
        if (convertView == null) {
            LayoutInflater inflator = mContext.getLayoutInflater();
            view = inflator.inflate(R.layout.rowbutton, null);
            final ViewHolder viewHolder = new ViewHolder();
            viewHolder.text = (TextView) view.findViewById(R.id.label);
            viewHolder.checkbox = (CheckBox) view.findViewById(R.id.checkBox);
            viewHolder.checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    Model element = (Model) viewHolder.checkbox.getTag();
                    element.setSelected(buttonView.isChecked());
                }
            });       
           view.setTag(viewHolder);
           viewHolder.checkbox.setTag(mList.get(position));
        } else {
            view = convertView;
            ((ViewHolder) view.getTag()).checkbox.setTag(mList.get(position));
        }
        ViewHolder holder = (ViewHolder) view.getTag();
        holder.text.setText(mList.get(position).getName());
        holder.checkbox.setChecked(mList.get(position).getSelected());
        return view;
    }
}


Model.java
Код: 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.
package com.osinit.bitsfusion.service;

public class Model {

    private String name;
    private String path;
    private boolean selected;

    public Model(String name, String path) {
        this.name = name;
        this.path = path;
        selected = false;
    }

    public String getName() {
        return name;
    }
    
    public String getPath() {
        return path;
    }

    public void setName(String name) {
        this.name = name;
    }
    
    public void setPath(String path) {
        this.path = path;
    }

    public boolean getSelected() {
        return selected;
    }
    
    public void setSelected(boolean selected) {
        this.selected = selected;
    }

}
...
Рейтинг: 0 / 0
Как сохранить выбранные каталогию. (Android)
    #38382347
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GLOCTARRМне нужно как-то сохранять выбранные каталоги
нужно -> сохраняй. это что сверхзадача какая-то, сохранить список классов типа Model? пока не ясно, какoе отношение это имеет к android. чисто алгоритмическая задачка на знание ява коллекций и что такое equals/hashCode
...
Рейтинг: 0 / 0
Как сохранить выбранные каталогию. (Android)
    #38382435
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GLOCTARR,
imho ГУИ не всегда строится по принципам MVC.....часто компонентно, в котором внутри визуального элемента есть все эти кишки кода.
Как вариант:
http://translate.googleusercontent.com/translate_c?depth=1&hl=ru&rurl=translate.google.com&sl=auto&tl=ru&u=http://code.google.com/p/android-file-dialog/&usg=ALkJrhjj5I_5-iJpHw6wY12Xb9lgq23pvg
- приведи скрин того что надо в конечном итоге.
...
Рейтинг: 0 / 0
Как сохранить выбранные каталогию. (Android)
    #38382476
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну или ...тоже близко по ГУИ...
Адаптеры для ExpandableList
...
Рейтинг: 0 / 0
Как сохранить выбранные каталогию. (Android)
    #38383229
GLOCTARR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот так все выглядит. Вот думаю сделать дерево для хранения файлов. Пока еще не знаю как отображать уже выбранные файлы, когад буду лазить по каталогам .
[img=]
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / Как сохранить выбранные каталогию. (Android)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]