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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
xonski
1 / 1 / 0
Регистрация: 24.07.2013
Сообщений: 35
#1

android cursor managedquery specific folder - Программирование Android

27.08.2013, 12:39. Просмотров 871. Ответов 0
Метки нет (Все метки)

здравствуйте
Я хочу использовать Cursor.managedQuery определенную папку
Я написал код, но этот код использовать все видео видео в телефоне, но мне нужно только определенную папку
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
public class Video extends ListActivity {
    /** Called when the activity is first created. */
    // To HOLD Data , Display Name , Size and Duration of a Video file
    ArrayList<String> l1 = new ArrayList<String>();
    ArrayList<String> l2 = new ArrayList<String>();
    ArrayList<String> l3 = new ArrayList<String>();
    ArrayList<String> l4 = new ArrayList<String>();
    String sec = null, min = null;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        // Store Required Content Provider URis in String Array
        String[] proj = { MediaStore.Video.Media._ID,
                MediaStore.Video.Media.DATA,
                MediaStore.Video.Media.DISPLAY_NAME,
                MediaStore.Video.Media.SIZE, MediaStore.Video.Media.DURATION };
 
        // Load all Videos with any filter to Cursor Object to access them
        // further
 
        Cursor c = managedQuery(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
                proj, null, null, null);
 
        // To get the Position of File Data In the Cursor
        int na = c.getColumnIndex(MediaStore.Video.Media.DATA);
        // To get the Position of File DisplayName In the Cursor
        int nam = c.getColumnIndex(MediaStore.Video.Media.DISPLAY_NAME);
        // To get the Position of File Size In the Cursor
        int si = c.getColumnIndex(MediaStore.Video.Media.SIZE);
        // To get the Position of File Duration In the Cursor
        int du = c.getColumnIndex(MediaStore.Video.Media.DURATION);
        // Start Looping through Cursor object
        if (c.moveToFirst()) {
            do {
                // To get the Value of Data Column
                String name = c.getString(na);
                // To get the Value of DisplayName Column
                String name2 = c.getString(nam);
                // To get the Value of Size in KB Column.. By default the values
                // stored in Bytes in CP
                String siz = Integer.toString(c.getInt(si) / 1024);
                // To get the Value of Duration Column. By default it is stored
                // in SEC
                int time1 = c.getInt(du);
                int seconds = (int) ((time1 / 1000) % 60);
                int minutes = (int) ((time1 / 1000) / 60);
                int hours = (int) ((time1 / 1000) / 3600);
                // Adding the values Row by Row in the above declared ArrayList
                l1.add(name);
                l2.add(name2);
                l3.add(siz);
                // If the file Duration is limited to SEC/MIN then Dont Diplay
                // Hrs [HH:MM:SS] ,
                if (hours <= 0) {
                    l4.add(minutes + ":" + seconds);
                } else {
                    l4.add(hours + ":" + minutes + ":" + seconds);
                }
 
            } while (c.moveToNext());
        }
 
        // Instantiate the ListView object to show all Videos.
        ListView lv = getListView();
        // MyThumbNaili is class to show the Video Thumbnail to Listview as
        // Image. As shown in the O/P Result.
        lv.setAdapter(new MyThumbnaildapter());
        // Setting OnClick Listerner to List-Items.
        lv.setOnItemClickListener(new OnItemClickListener() {
 
            // Implementation of Abstract method on OnItemClickListener class
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {
 
                String filename = l1.get(arg2);
                // ***Passing th presently clicked Item to "View Video" as a
                // parameter to Play the video.*** [IMP]
                Intent intent = new Intent(Video.this, ViewVideo.class);
                // while Navigating from this Activity to another Activity
                // below line also pass the choosen File name to another Intent
                intent.putExtra("videofilename", filename);
                startActivity(intent);
 
            }
 
        });
    }
 
    public class MyThumbnaildapter extends BaseAdapter {
 
        // Default Abstract Method in BaseAdapter to get the count of ListItems
        public int getCount() {
 
            return l1.size();
        }
 
        // Default Abstract Method in BaseAdapter to get the Clicked Item Object
        public Object getItem(int position) {
 
            return position;
        }
 
        // Default Abstract Method in BaseAdapter to get the Clicked Item Index
        public long getItemId(int position) {
 
            return position;
        }
 
        // Default Abstract Method in BaseAdapter to : Manage how to display the
        // ThumbNail
        public View getView(int position, View convertView, ViewGroup parent) {
            // Get the present View
            View row = convertView;
 
            if (row == null) {
                // LayoutInflater is used to customise the each Item's view as
                // designed in the Row.XML.
                // By Default All items in the listView displays Text in each
                // row
                // So In order to show the customised look in the Each item of a
                // layout, we need to use this.
                LayoutInflater inflater = getLayoutInflater();
                // Need to pass the Source as Parent. In this case it is ROW.XML
                row = inflater.inflate(R.layout.row, parent, false);
            }
 
            // Setting FilePath TextView with Previosuly loaded Item Values.
            TextView textfilePath = (TextView) row.findViewById(R.id.FilePath);
            textfilePath.setText(l2.get(position) + "\n");
 
            // Setting FileSize TextView with Previosuly loaded Item Values.
            TextView size1 = (TextView) row.findViewById(R.id.FileSize);
            size1.setText(l3.get(position) + "kb");
 
            // Setting Duration TextView with Previosuly loaded Item Values.
            TextView dur = (TextView) row.findViewById(R.id.FileDuration);
            dur.setText(l4.get(position));
            // Setting Thumbnail TextView with Previosuly loaded Item Values.
            ImageView imageThumbnail = (ImageView) row
                    .findViewById(R.id.Thumbnail);
            imageThumbnail.setScaleType(ImageView.ScaleType.CENTER_CROP);
            imageThumbnail.setPadding(8, 8, 8, 8);
 
            Bitmap bmThumbnail;
            bmThumbnail = ThumbnailUtils.createVideoThumbnail(l1.get(position),
                    Thumbnails.MICRO_KIND);
            imageThumbnail.setImageBitmap(bmThumbnail);
 
            return row;
        }
 
    }
}
из примера SDCard /video папки

Но оно заполняет все видео сохраняется в SDCard, но я хочу только те видео, которые сохраняются в определенной папке. Я также использовал
Java
1
2
Uri uri = Uri.fromFile(filepath);
cursor = managedQuery(uri, mystring , null , null , null);
и
Java
1
2
Uri uri = Uri.parse(filepath);
cursor = managedQuery(uri, mystring , null , null , null);
Но это не работает. Я пробовал много и получили помощь от Google до сих пор не преуспели. Есть ли способ, чтобы дать путь этой папки? или любым другим способом?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.08.2013, 12:39     android cursor managedquery specific folder
Посмотрите здесь:
Android Write assets folder
Android Cursor
Cursor Android
Android RawQuery using cursor
ArraList or Cursor Android
Заполнить RecyclerView из Cursor Android
Получение данных из cursor Android
Рэндомно забрать из cursor Android
Cursor c = db.rawQuery - выдает ошибку Android
Android SQLite. Жутко тормозит Cursor
Android Footer(ProgressBar) in recyclerview + cursor
Как обновить Recycle View после добавления нового элемента в БД? Используется Cursor Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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