Получение изображения для ссылки на веб-страницу в GridView на Android? - PullRequest
0 голосов
/ 30 марта 2011

У меня в приложении с макетом GridView есть одно изображение для тестирования, пока я не пойму этот следующий шаг. У меня все настроено, но я не знаю, как реализовать дизайн, в котором щелкают изображения A, B, C, D и т. Д., Что приводит к тому, что пользователь (я) попадает на указанную мной веб-страницу. Мне нужно, чтобы каждое изображение связывалось с разными местами, и я был бы очень признателен за помощь по внедрению этого в мой код:

public class ImageAdapter extends BaseAdapter {
    private Context mContext;

    public ImageAdapter(Context c) {
        mContext = c;
    }

    public int getCount() {
        return mThumbIds.length;
    }

    public Object getItem(int position) {
        return null;
    }

    public long getItemId(int position) {
        return 0;
    }

    // create new ImageView for each item
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView;

        if (convertView == null) {
            imageView = new ImageView(mContext);
            imageView.setLayoutParams(new GridView.LayoutParams(150, 150));
            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
            imageView.setPadding(5, 5, 5, 5);
        } 

        else {
            imageView = (ImageView) convertView;
        }

        imageView.setImageResource(mThumbIds[position]);
        return imageView;
    }

    // references to images
    private Integer[] mThumbIds = {
        R.drawable.A, R.drawable.B,
        R.drawable.C, R.drawable.D,
        R.drawable.E, R.drawable.F,
        R.drawable.G, R.drawable.H,
    };
}

Ответы [ 2 ]

0 голосов
/ 30 марта 2011

Метод «нулевой работы» заключается в том, чтобы просто запустить Intent, который откроет URL-адрес в браузере устройства из OnItemClickListener. Что-то вроде:

//Obtain a reference to the view in your layout somehow...I chose findViewById()
GridView grid = (GridView)findViewById(R.id.peters_grid);
grid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
        //"position" is the location of the image clicked
        String url = arrayOfUrls[position];
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setData(Uri.parse(url));
        startActivity(intent);
    }
});

Где вы выбираете правильный URL для каждой позиции из массива строк. Это всего лишь одна из идей для получения правильного URL-адреса ... вы можете создать правильный URL-адрес миллионами разных способов, но ключ заключается в том, чтобы передать его в Intent, а затем запустить его.

Версия этого "небольшого труда" будет заключаться в создании WebView в том или ином Activity, чтобы вы могли загрузить веб-страницу и оставаться в коде своего приложения. Если WebView находится во втором Activity, все равно было бы лучше использовать Intent для передачи строки URL от первого Activity ко второму.

Надеюсь, что поможет!

0 голосов
/ 30 марта 2011

Используйте getItemId () в вашем адаптере (просто верните позицию), чтобы выбрать URL, на который вы хотите перейти. Так же, как у вас mThumbIds, просто есть параллельный массив, который содержит соответствующие URL-адреса, поэтому при нажатии на изображение можно легко получить доступ к соответствующему URL-адресу с тем же индексом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...