Итак, у меня есть сетка, которая отображает изображения из базы данных. когда пользователь нажимает на один элемент, он должен открыть новую активность, отображающую изображения и некоторую информацию, связанную с изображением.Доступ к данным gridView элемента данных android
Теперь я хочу получить данные из элемента gridview, например, например imageId и передать его новому действию с помощью намерения.
Как получить доступ к данным сетки.
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;
}
}
Вы можете использовать s imple методы Getter и Setter, setId при извлечении из базы данных и getId при необходимости. –
У вас есть какой-либо пример или исходный код, пожалуйста? У меня есть сеттеры и геттеры, но я не знаю, как их использовать @HtmlTosin – Rawan