VideoFileActivity.java
3.02 KB
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
package com.cnlive.demo.videoqn;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
import android.support.v4.widget.SimpleCursorAdapter;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
public class VideoFileActivity extends AppCompatActivity implements LoaderManager.LoaderCallbacks<Cursor> {
private ListView mVideoListView;
private VideoAdapter mVideoAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_file);
mVideoListView = (ListView) findViewById(R.id.FileListView);
mVideoAdapter = new VideoAdapter(this);
mVideoListView.setAdapter(mVideoAdapter);
mVideoListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, final int position, final long id) {
Intent intent = new Intent();
intent.putExtra("videoPath", mVideoAdapter.getVideoPath(position));
setResult(Activity.RESULT_OK, intent);
finish();
}
});
getSupportLoaderManager().initLoader(1, null, this);
}
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
return new CursorLoader(this, MediaStore.Video.Media.getContentUri("external"), null, null, null,
"UPPER(" + MediaStore.Video.Media.DATA + ")");
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
mVideoAdapter.swapCursor(data);
}
@Override
public void onLoaderReset(Loader<Cursor> loader) {
}
public class VideoAdapter extends SimpleCursorAdapter {
public VideoAdapter(Context context) {
super(context, android.R.layout.simple_list_item_1, null,
new String[]{MediaStore.Video.Media.DISPLAY_NAME, MediaStore.Video.Media.DATA},
new int[]{android.R.id.text1, android.R.id.text2}, 0);
}
@Override
public long getItemId(int position) {
final Cursor cursor = getCursor();
if (cursor == null || cursor.getCount() == 0 || position >= cursor.getCount()) {
return 0;
}
cursor.moveToPosition(position);
return cursor.getLong(0);
}
public String getVideoPath(int position) {
final Cursor cursor = getCursor();
if (cursor.getCount() == 0) {
return "";
}
cursor.moveToPosition(position);
return cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.DATA));
}
}
}