Я пытаюсь получить URL-адрес изображения из выбранного изображения, которое пользователь выбирает, чтобы затем передать эту строку/URL другому фрагменту, который я настроил, чтобы изображение могло быть полностью просмотрев изображение.Получение и передача URL-адреса изображения с помощью Picasso
Как бы я смог достичь этого? Благодарю.
Вот класс SampleGridViewAdapter:
inal class SampleGridViewAdapter extends BaseAdapter {
private final Context context;
public final List<String> urls = new ArrayList<String>();
public SampleGridViewAdapter(Context context) {
this.context = context;
// Ensure we get a different ordering of images on each run.
Collections.addAll(urls, Data.URLS);
Collections.shuffle(urls);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
SquaredImageView view = (SquaredImageView) convertView;
if (view == null) {
view = new SquaredImageView(context);
view.setScaleType(CENTER_CROP);
}
// Get the image URL for the current position.
String url = getItem(position);
// Trigger the download of the URL asynchronously into the image view.
Picasso.with(context) //
.load(url) //
.placeholder(R.drawable.placeholder) //
.error(R.drawable.error) //
.fit() //
.into(view);
return view;
}
@Override
public int getCount() {
return urls.size();
}
@Override
public String getItem(int position) {
return urls.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
}
Вот мой SampleGridViewActivity:
public class SampleGridViewActivity extends SherlockFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.sample_gridview_activity,
container, false);
GridView Grid = (GridView) view.findViewById(R.id.grid_view);
Grid.setAdapter(new SampleGridViewAdapter(getActivity()));
Grid.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long urls) {
// TODO Auto-generated method stub
FragmentManager fm = getFragmentManager();
FragmentTransaction transaction = fm.beginTransaction();
Fragment openImage = new ImageViewPager();
transaction.replace(R.id.content_frame, openImage);
transaction.addToBackStack(null);
transaction.commit();
}
});
return view;
}
}
Вот класс, я хотел бы, чтобы отправить строку:
public class ImageViewer extends SherlockFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.imageviewpager, container, false);
ImageView IMGView = (ImageView) view.findViewById(R.id.imageView1);
Picasso.with(getActivity()).load("Pass URL into HERE").into(IMGView);
return view;
}
}
Я получаю сообщение об ошибке на «DATA», он не может быть разрешен переменной. hmm – Jack
Что вы подразумеваете под DATA? – Jack
Вы написали DATA.URLs в своем классе адаптера. Сначала вы должны иметь доступ к своему списку. Я написал DATA, потому что вы написали DATA в своем адаптере. Я думаю, вы также можете использовать свой адаптер. Поместите ваш адаптер в переменную mAdapter. А затем вы можете получить доступ к своему списку, например, mAdapter.urls.get (позиция) – tasomaniac