sdcard에 있는 모든 이미지 파일을 그리드뷰에 띄우고 이미지파일의 날짜 정보를 받아오려고 하는데 계속 null이 뜨네요.. 도와주세요..
코드 입니다.
-------------------MainActivity.java------------------------------------------------------------------------
public class MainActivity extends AppCompatActivity {
GridView gridview;
public ArrayList<String> LocationArray = new ArrayList<String>();
CustomGridViewAdapter customGridViewAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LocationArray.clear();
getFiles();
// 리스트뷰 객체 생성 & 어댑터 설정
gridview = (GridView) findViewById(R.id.GridView);
customGridViewAdapter = new CustomGridViewAdapter(this, R.layout.row_grid, LocationArray);
gridview.setAdapter(customGridViewAdapter);
}
/*
* 이미지를 담고 있는 폴더 추출
*
* @param file
* @return
*/
@SuppressWarnings("deprecation")
private void getFiles() {
Cursor cursor;
cursor = getContentResolver().query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, null, null, null);
String filename = Environment.getExternalStorageDirectory().getPath();
if (cursor != null && cursor.moveToLast()) {
do {
try {
ExifInterface exif = new ExifInterface(filename);
String strlatitude = getTagString(ExifInterface.TAG_DATETIME, exif);
String myAttribute = strlatitude;
if (exif != null)
LocationArray.add(myAttribute);
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(this, "Error!", Toast.LENGTH_LONG).show();
}
} while (cursor.moveToPrevious());
}
}
private String getTagString(String tag, ExifInterface exif) {
return (tag + " : " + exif.getAttribute(tag) + "\n");
}
}
-------------------CustomGridViewAdapter.java--------------------------------------------------------------------
public class CustomGridViewAdapter extends ArrayAdapter<String> {
Context context;
int layoutResourceId;
ArrayList<String> data = new ArrayList<String>();
public CustomGridViewAdapter(Context context, int layoutResourceId, ArrayList<String> data) {
super(context, layoutResourceId, data);
this.layoutResourceId = layoutResourceId;
this.context = context;
this.data = data;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
RecordHolder holder = null;
if (row == null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new RecordHolder();
holder.txtTitle = (TextView) row.findViewById(R.id.item_text);
holder.imageItem = (ImageView) row.findViewById(R.id.item_image);
row.setTag(holder);
} else {
holder = (RecordHolder) row.getTag();
}
String item = data.get(position);
holder.txtTitle.setText(item);
//holder.imageItem.(item.getImage());
return row;
}
static class RecordHolder {
TextView txtTitle;
ImageView imageItem;
}
}
-------------------activity_main.xml------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<GridView
android:id="@+id/GridView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:numColumns="3"
android:columnWidth="60dp"
android:stretchMode="columnWidth"
android:gravity="center"
/>
</RelativeLayout>
-------------------row_grid.xml--------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/item_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/white_folder" />
<TextView
android:id="@+id/item_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="TextView" />
</LinearLayout>