Гость
Форумы / Android [игнор отключен] [закрыт для гостей] / Как сохранить выбранные каталогию. (Android) / 5 сообщений из 5, страница 1 из 1
30.08.2013, 11:13
    #38382079
GLOCTARR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сохранить выбранные каталогию. (Android)
Мне нужно как-то сохранять выбранные каталоги, чтобы потом передать этот список, так же , когда перемещаюсь по каталогом , выбранные не сбрасывались. Может кто подскажет что почитать или как реализовать это.
Мой код: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
30.08.2013, 14:09
    #38382347
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сохранить выбранные каталогию. (Android)
GLOCTARRМне нужно как-то сохранять выбранные каталоги
нужно -> сохраняй. это что сверхзадача какая-то, сохранить список классов типа Model? пока не ясно, какoе отношение это имеет к android. чисто алгоритмическая задачка на знание ява коллекций и что такое equals/hashCode
...
Рейтинг: 0 / 0
30.08.2013, 14:59
    #38382435
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сохранить выбранные каталогию. (Android)
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
30.08.2013, 15:20
    #38382476
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сохранить выбранные каталогию. (Android)
ну или ...тоже близко по ГУИ...
Адаптеры для ExpandableList
...
Рейтинг: 0 / 0
31.08.2013, 18:41
    #38383229
GLOCTARR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сохранить выбранные каталогию. (Android)
Вот так все выглядит. Вот думаю сделать дерево для хранения файлов. Пока еще не знаю как отображать уже выбранные файлы, когад буду лазить по каталогам .
[img=]
...
Рейтинг: 0 / 0
Форумы / Android [игнор отключен] [закрыт для гостей] / Как сохранить выбранные каталогию. (Android) / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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