【发布时间】:2015-09-16 08:51:41
【问题描述】:
所以我有一个显示来自数据库的图像的网格视图。当用户点击一个项目时,它必须打开显示图像和一些与图像相关的信息的新活动。
现在我想从 gridview 项目中获取数据,例如 imageId,并通过意图将其传递给新活动。
如何访问gridview的数据。
public class MyPostsGridFragment extends Fragment {
private ParseQueryAdapter<ParseObject> mainAdapter;
private MyPostsGridAdapter imgAdapter;
private GridView gridview;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.gridview_fragment, container, false);
// Initialize main ParseQueryAdapter
mainAdapter = new ParseQueryAdapter<ParseObject>(getActivity().getApplicationContext(), "Test");
// Initialize the subclass of ParseQueryAdapter
imgAdapter = new MyPostsGridAdapter(getActivity().getApplicationContext());
// Initialize gridView and set initial view to mainAdapter
gridview = (GridView) v.findViewById(R.id.gridview);
gridview.setAdapter(mainAdapter);
mainAdapter.loadObjects();
if (gridview.getAdapter() == mainAdapter) {
gridview.setAdapter(imgAdapter);
imgAdapter.loadObjects();
} else {
gridview.setAdapter(mainAdapter);
mainAdapter.loadObjects();
}
gridview.setAdapter(new MyPostsGridAdapter(getActivity()));
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Intent intent = new Intent(getActivity(), SinglePostActivity.class);
//intent.putExtra("")
Log.i("position", "the position is : "+position);
startActivity(intent);
}
});
return v;
}
}
这是我的适配器
public class MyPostsGridAdapter extends ParseQueryAdapter<ParseObject> {
//MediaPlayer mediaPlayer;
private LayoutInflater mInflater = null;
ImageButton playPause;
private boolean isPlaying = false;
public MyPostsGridAdapter(Context context) {
super(context, new QueryFactory<ParseObject>() {
public ParseQuery create() {
ParseQuery query = new ParseQuery(Images.class);
query.whereEqualTo("createdBy", ParseUser.getCurrentUser());
query.include("createdBy");
query.orderByDescending("createdAt");
return query;
}
});
}
// Customize the layout by overriding getItemView
@Override
public View getItemView(final ParseObject object, View v, ViewGroup parent) {
final ViewHolder holder;
if (v == null) {
v = View.inflate(getContext(), R.layout.gridview_item, null);
holder = new ViewHolder();
holder.btnOne = (ImageView) v.findViewById(R.id.playPause);
v.setTag(holder);
}
super.getItemView(object, v, parent);
// Add and download the image
ParseImageView image = (ParseImageView) v.findViewById(R.id.voice);
ParseFile imageFile = object.getParseFile("img");
if (imageFile != null) {
//Get singleton instance of ImageLoader
ImageLoader imageLoader = ImageLoader.getInstance();
//Load the image from the url into the ImageView.
imageLoader.displayImage(imageFile.getUrl(), image);
}//end if
String name = object.getObjectId();
//final int objId= Integer.parseInt(name);
String test = object.getString("createdBy");
// nameTextView.setText(test);
return v;
}//end getItem View
class ViewHolder {
ImageView btnOne;
}
}
【问题讨论】:
-
您可以使用简单的 Getter 和 Setter 方法,从 DB 检索时使用 setId,在需要时使用 getId。
-
请问您有任何示例或源代码吗?我有 setter 和 getter,但我不知道如何使用它们@HtmlTosin