Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
evb
1 / 1 / 0
Регистрация: 28.06.2016
Сообщений: 22
#1

ACTION_SEND в ArrayAdapter - Программирование Android

06.07.2016, 16:53. Просмотров 124. Ответов 4
Метки нет (Все метки)

Ребят,вопрос такой, есть GridView с картинками, к нему отдельным классом подключен Adapter. Необходимо по клику картинки делать ACTON_SEND. Слушатель кликов реализован в getView адаптера. Как запустить активити интента если класс Adapter не наследует активити?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class MainActivity extends Activity {
 
    GridView mLvImages;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mLvImages = (GridView) findViewById(R.id.gridView1);
        
        File dir = new File(Environment.getExternalStorageDirectory(), "ICOIN/");
        File[] filesArray = dir.listFiles();
 
        if (filesArray != null) {
            Adapter adapter = new Adapter(this, filesArray);
            mLvImages.setAdapter(adapter);
           }
        }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class Adapter extends ArrayAdapter<File> {
    
    LayoutInflater mInflater;
    Picasso mPicasso;
 
    public Adapter(Context context, File[] objects) {
        super(context, R.layout.list_item, objects);
        mInflater = LayoutInflater.from(context);
        mPicasso = Picasso.with(context);
    }
 
    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        View view = convertView;
        if (view == null) {
            view = mInflater.inflate(R.layout.list_item, parent, false);
        }
        final ImageView imageView = (ImageView) view.findViewById(R.id.imageView);
        mPicasso.load(getItem(position)).fit(). centerCrop().into(imageView);
        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
 
                Intent intent = new Intent(Intent.ACTION_SEND);
                intent.setType("image/*");
                intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(getItem(position)));
            }
        });
        return view;
    }
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.07.2016, 16:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос ACTION_SEND в ArrayAdapter (Программирование Android):

Intent.ACTION_SEND отправка изображений - Программирование Android
Здравствуйте. В диплом проекте реализована возможность там всяких записей на прием и все такое через отправку email сообщения. Но...

Собственный ArrayAdapter - Программирование Android
Доброго времени суток. Пытаюсь написать собственный адаптер для строкового типа: titles = new ArrayList&lt;String&gt;(messages.size());...

Обновление данных в ArrayAdapter - Программирование Android
Добрый день. Есть созданный ArrayAdapter. Он добавляется в listView, при достижении конца списка происходит получение информации и...

ArrayAdapter и много заморочек - Программирование Android
Сам ArrayAdapter String data = new String{&quot;Текст 1&quot;,&quot;Текст 2&quot;}; ArrayAdapter&lt;String&gt; adapter = new ArrayAdapter&lt;&gt;(this, ...

Привязка класса к ArrayAdapter - Программирование Android
Добрый день. Есть класс, содержащий опросы private static class Polls { private final int _Id; private final...

Отличия в работе ArrayAdapter - Программирование Android
Что то не понятное с ArrayAdapter на Android 2.3, У меня есть EditText в списке, меняя значение одного, меняются все. На Android &gt;= 4.0 все...

4
Pablito
2499 / 1983 / 618
Регистрация: 12.05.2014
Сообщений: 6,925
Завершенные тесты: 1
06.07.2016, 16:56 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
в адаптер передается context
почему не написать так?
Java
1
getContext().startActivity(intent);
1
evb
1 / 1 / 0
Регистрация: 28.06.2016
Сообщений: 22
06.07.2016, 17:13  [ТС] #3
Век живи - век учись) Спасибо , все работает! Небольшой вопрос чуть не по теме - почему приложение не предоставляет выбор куда передать, а сразу отправляет в одно из установленных приложений?
0
Pablito
2499 / 1983 / 618
Регистрация: 12.05.2014
Сообщений: 6,925
Завершенные тесты: 1
06.07.2016, 17:22 #4
значит до этого телефон уже показывал диалог с выбором приложений и кто-то выбрал там пункт что открывать по умолчанию, поставил галочку

по идее
0
evb
1 / 1 / 0
Регистрация: 28.06.2016
Сообщений: 22
06.07.2016, 17:29  [ТС] #5
Проблема решена
Java
1
getContext().startActivity(Intent.createChooser(intent,""));
Спасибо
0
06.07.2016, 17:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2016, 17:29
Привет! Вот еще темы с ответами:

Кастомный ArrayAdapter для Spinner - Программирование Android
Создал свой адаптер. Привязал его к списку Spinner. Получил идентификатор выбранной записи. Ну вроде бы как получается в каждом элементе...

Собственный адаптер на основе ArrayAdapter - Программирование Android
Хочу реализовать, чтобы при keydown элемент списка менял цвет фона, а при keyup возвращался в исходное положение, и в то же время выполнял...

Как правильно настроить ArrayAdapter? - Программирование Android
Создаю своё первое приложение, потому вопрос новичка. Статья, которой я руководствовался - поверхностная, потому во многом пришлось...

ArrayAdapter вылет на clear и add - Программирование Android
Приветствую! Вылет на clear. Если эту строку закоментить то вылет на add. В чем может быть проблема? import java.io.File; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru