Задать вопрос
  • Как повесить обработчик нажатия на элемент RecyclerView?

    @klim76
    android/java/sql
    public class TransportAdapter extends RecyclerView.Adapter<TransportAdapter.TransportViewHolder> {
    
        public interface onClickListener{
            void onVariantClick(TransportModel model);
        }
        
        private onClickListener listener;
       
       .....
        @Override
        public void onBindViewHolder(@NonNull TransportViewHolder holder, int position) {
            final TransportModel transportModel = transportVariants.get(position);
            ....
            if(listener != null){
                holder.itemView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        listener.onVariantClick(transportModel);
                    }
                });
            }
        }
       .... бла бла бла
    
        public void setListener(onClickListener listener){
            this.listener = listener;
        }
    
        class TransportViewHolder extends RecyclerView.ViewHolder {
           .....бла бла бла
            public TransportViewHolder(View itemView) {
                super(itemView);
                ButterKnife.bind(this, itemView);
            }
        }
    }
    Ответ написан
    Комментировать
  • В Google Play возможно выкладывать приложение для одного человека (чтобы доступ на скачивание и обновление был только у него)?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    https://support.google.com/googleplay/android-deve...

    Закрытое тестирование: управление тестировщиками с помощью адресов электронной почты
    Составьте список участников закрытого тестирования по адресам электронной почты. Вы можете создать до 200 списков (по 50 списков на версию), в каждом из которых должно быть не более 2000 пользователей.
    Ответ написан
    1 комментарий
  • Как передать из сервиса картинку в формате BLOB поля БД в ImageView android устройства?

    zagayevskiy
    @zagayevskiy Куратор тега Java
    Android developer at Yandex
    Всё это хрень. Не храни картинки в бд. Храни файлы и пути к ним. Тем более на Андроиде, размер курсора ограничен, и подгрузки на мейнтреде будут, а значит - тормоза. Отдавай в джсоне тоже пути. Грузи в Андроиде с помощью специальных либ. Glide, picasso, fresco, типа того.
    Ответ написан
    3 комментария
  • Зачем использовать сигнатуру try/catch в java в таком примере?

    zagayevskiy
    @zagayevskiy Куратор тега Java
    Android developer at Yandex
    Это бредятина. Если в каких-то уроках такое дают - беги оттуда. Выбрасывать исключение, что-то тут же его ловить, да ещё и в цикле - это надо быть редкостным идиотом. При выбросе исключения разворачивается стек, это дорого.
    Ответ написан
    Комментировать
  • Расчёт золота, серебра и меди в игре, как сделать?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Откройте учебник математики, класс этак за четвёртый - пятый. Там где-то должно быть написано, как делить целые числа и как находить остаток от деления.
    Ответ написан
    Комментировать
  • Android RecyclerView. Как правильно взять данные для элемента списка из нескольких источников?

    kozinakoff
    @kozinakoff
    iOS-developer
    Как я понимаю, между User и Order есть связь, верно?

    В таком случае вы можете передавать в адаптер не коллекцию пользователей, а коллекцию из объектов UserOrder (ну или придумайте название получше ;-) ), которые будут содержат в себе всю необходимую информацию.

    Почитайте про композицию и агрегацию
    Ответ написан
    2 комментария
  • Что это за конструкция в Java?

    @D3lphi
    Явное приведение типа объекта, лежащего в переменной urlConn, к типу HttpURLConnection.
    Ответ написан
  • Как школьнику найти время на программирование?

    Basters
    @Basters
    Кокер-спаниель
    Толк будет от любого учения, каким бы оно не являлось.

    Изучай по вечерам, в выходные, придумай себе пет проект и начни им заниматься в свободное время.
    Ответ написан
    Комментировать
  • Не могу понять что не так с условием?

    Строки сравниваются не через равно, а через .equals
    Ответ написан
    2 комментария
  • Как правильно организовать среду разработки с git?

    samizdam
    @samizdam
    Для того чтобы использовать git, в желаемом вами контексте, я бы рекомендовал освоиться со следующими понятиями:
    - origin — центральный репозиторий, через который происходит синхронизация
    - master — по умолчанию это главная, центральная ветка
    - .gitignore — файл, в котором можно указать файлы и директории, которые не должны отслеживаться — например локальные конфиги, автоматически генерируемые артефакты, вендоры, логи и прочий runtime
    Таким образом, Вы с коллегами
    1. настраиваете локальную dev окружение
    2. игнорите конфиги и прочее
    3. разрабатываете что-то локально, коммитите
    4. пушите в origin
    5. на продакшене делаете clone, настраиваете конфиги
    6. повторяете п.п. 3-4 + pull на продакшене

    Это, пожалуй, самая простая схема — реализует то о чём Вы спрашивали.
    Ответ написан
    Комментировать
  • Как избежать перекрытие полей формы клавиатурой андроид?

    @Kanesy
    Для активности в манифесте выставить флаг android:windowSoftInputMode="adjustResize"
    Ответ написан
    Комментировать
  • Как разбить ListView на ячейки?

    @zelan
    Кратко обо мне не получится.
    Можно вот так:

    public class Main extends Application {
        
        @Override
        public void start(Stage primaryStage) throws Exception{
            Pane root = new Pane();
            primaryStage.setTitle("Hello World");
            primaryStage.setScene(new Scene(root, 300, 275));
            primaryStage.show();
    
    
            //подготавливаем список для листа
            ObservableList<TestEntity> list = FXCollections.<TestEntity>observableArrayList();
            
            list.addAll(
                    new TestEntity(new Button("button1"), "str1"),
                    new TestEntity(new Button("button2"), "str2"),
                    new TestEntity(new Button("button3"), "str3"));
    
    
            ListView<TestEntity> listView = new ListView<TestEntity>(list);
    
            //устанавливаем фабрику для отрисовки ячейки.
            listView.setCellFactory(new Callback<ListView<TestEntity>, ListCell<TestEntity>>() {
                @Override
                public ListCell<TestEntity> call(ListView<TestEntity> param) {
    
                    //тут нужно собрать объект ListCell, и вернуть его
                    ListCell<TestEntity> listCell = new ListCell<TestEntity>(){
    
                        //отрисовка происходит здеся
                        @Override
                        protected void updateItem(TestEntity item, boolean empty) {
    
    
                            super.updateItem(item, empty);
    
                            if (empty || item == null) {
                                setText(null);
                                setGraphic(null);
                            } else {
    
                                //тут конструируешь все что захочешь
                                //или можешь подгружать fxml
                                HBox hBox = new HBox();
    
    
                                Label label = new Label(item.getString());
                                hBox.getChildren().addAll(item.getButton(), label);
    
                                //устанавливаем графику
                                setGraphic(hBox);
    
                            }
                        }
                    };
    
                    return listCell;
    
    
    
                }
            });
    
            root.getChildren().add(listView);
    
        }
    
        class TestEntity{
            Button button;
            String string;
            TestEntity(Button button, String str){
                setButton(button);
                setString(str);
            }
    
            public Button getButton() {
                return button;
            }
    
            public void setButton(Button button) {
                this.button = button;
            }
    
            public String getString() {
                return string;
            }
    
            public void setString(String string) {
                this.string = string;
            }
        }
    
    
        public static void main(String[] args) {
            launch(args);
        }
    }
    Ответ написан
    1 комментарий
  • Несколько вопросов по клиент-серверному соединению?

    tsarevfs
    @tsarevfs
    C++ developer
    1. Есть несколько вариантов, но все из них сводятся к тому, что текст, данные форм и прочее нужно представить в виде набора байт. Это называется сериализацией. Это можно делать по разному. Например использовать бинарный формат близкий к тому как эти данные хранятся в памяти. Это достаточно сложно особенно если программы написаны на разных языках. Вам подойдет более высокоуровневый подход на основе JSON (ndjson) или msgpack. Или даже более высокоуровневые решения типа json/msgpack rpc.
    2. Прием работает в обратном порядке. Мы принимаем данные в некотором формате и десериализуем их в те структуры данных, которые используются в программе.
    3. Уточните вопрос, но ответ скорее всего нет =)
    4. Он может участвовать а может и нет. Он работает поверх сокетов. Вероятно для ваших целей он избыточен. Однако смотреть можно в сторону rpc over http или rest api.
    5. Основная проблема в том, что операция -"ждать сообщения от клиента / сервера" блокирующая. И если ничего не предпринять, то клиент не сможет реагировать на клавиатуру / мышь, а сервер не сможет работать с несколькими клиентами. Поэтому сетевое общение можно вынести в отдельный поток или использовать какие-то асинхронные механизмы (в паскале с этим не очень похоже).
    6. Паскаль возможно не лучший язык для клиента. На той же Java это было бы проще.
    Ответ написан
    1 комментарий
  • Что за проблема рендеринга в Android Studio?

    Наконец-то и до сюда добралось!
    Проблема в последнемAppCompat 23.2.0.
    В этой версии ввели поддержку VectorDrawableCompat.
    Теперь векторные ресурсы больше не будут конвертироваться в растровые на этапе сборки.
    Однако,студия об этом не знает,и она автоматически решила сделать это опять.
    Поэтому нужно прописать специальный флаг в Gradle вашего проекта,
    иначе вылетит, такой же exception, как и у вас.
    1-ый вариант(если у вас версияGradle wrapper >= 2.0):

    android {
      defaultConfig {
        vectorDrawables.useSupportLibrary = true
      }
    }


    2-ой вариант:(если версия Gradle wrapper == 1.5 ; скорее всего он вам и подойдёт)

    android {
      defaultConfig {
        // Stops the Gradle plugin’s automatic rasterization of vectors
        generatedDensities = []
      }
      // Flag to tell aapt to keep the attribute ids around
      aaptOptions {
        additionalParameters "--no-version-vectors"
      }
    }


    Ну, а чтобы использовать это дело:

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
       app:srcCompat="@drawable/ic_search"/>

    Обратите внимание на последнюю строчку:
    app:srcCompat="@drawable/ic_search"

    Однако, данное решение помогает не всем.Хотя, вы просто лишаетесь видеть правильный
    вид некоторых элементов во время редактирования.При запуске всё будет выглядеть нормально.
    Ответ написан
    Комментировать
  • Динамическое изменение масштаба?

    @khaliulin
    Мне понравилась библиотека https://github.com/chrisbanes/PhotoView.
    В ней из коробки удобно и красиво работает зум, причём как по двойному тапу, так и разводкой пальцев.
    Ответ написан
    Комментировать
  • Где найти бесплатные текстуры и т.д для создания простенькой игры?

    JohnZoidberg
    @JohnZoidberg
    1. Kenney.nl

    Этот находящийся в Нидерландах сайт предлагает разработчикам замечательную графику. Присутствуют материалы, признанные Общественным достоянием. А это значит, что вы можете использовать их где угодно, не беспокоясь об авторских правах. Так же есть поиск графики по категориям, что значительно ускоряет процесс.
    Кроме того, на сайте представлены подборки бесплатной музыки.

    2. OpenGameArt.org

    Наверное, один из лучших сайтов в своём классе. OpenGameArt.org огромный сайт, предлагающий все виды графики, необходимые для разработки игр. Так же на сайте имеется бесплатная музыка (звуки). Основными плюсами данного ресурса являются наличие оживленного и весьма полезного форума, а так же постоянное обновление материалов за счет пополнения самими пользователями и рейтинговой системы оценивания. Так что вы всегда сможете быстро выбрать самое лучше и свежее.

    3. Untamed.wild-refuge.net

    Отличный ресурс для тех, кто задумывает или уже создает свою RPG.
    При переходе по ссылке справа вы увидите колонку ресурсов. Персонажи, предметы, локации и тому подобное, при нажатии на которых все-все объекты появятся на одной странице, что упрощает и ускоряет выбор. При клике на понравившегося персонажа, открывается ссылка на .png файл, со всеми 3d-проекциями и движениями, что идеально подходит для создания собственных спрайтов.

    4. Crateboy.itch.io

    Отличительная особенность данной коллекции - 8-битная графика городов. Вся библиотека совершенно бесплатна, и всё, о чём просит автор - упомянуть о нём в своей игре (credits).
    Цветовая гамма данной библиотеки является её отличительной особенностью, и при использовании в исходном виде вполне может определить дизайн всего проекта.

    5. Bagfullofwrong.co.uk

    Коллекция материалов, созданных и использованных в различных проектах дизайнером Робом Фероном для Вашего личного пользования.

    6. Gameart2d.com

    Вебсайт, запущенный индонезийским разработчиком игр, с отличным вкусом в области дизайна игр. Хотя большая часть материалов сайта является платной, так же присутствует и бесплатная, в которой Вы можете найти симпатичные изображения. Помимо спрайтов на сайте представлены наборы для создания уровней, GUI и прочее.

    7. Wigdetworx.com

    Пусть это и не самая большая коллекция спрайтов из длиннопоста, но определенно каждый найдет себе здесь что-нибудь по душе. Для того чтобы скачать себе множество ландшафтов и персонажей достаточно лишь одного клика.

    8. Glitchthegame.com

    Создатели проекта Glitch, закрытого в 2012 году решили сделать всю её графическую часть Достоянием общественности (никакие авторские права для использование не требуются). К Вашим услугам более 10,000 изображений восхитительного качества собранные воедино и доступные по одному нажатию.

    9. Dumbanex.com

    Идеально для сайдскроллеров и платформеров
    Множество графики от дизайнера-фрилансера Брента Андерсона. Всё бесплатно при условии упоминания в приложении (Credits).

    10. Reinerstilesets.de

    Бесплатная графика от разработчика игр разработчикам игр. Помимо библиотек на сайте есть неплохие туториалы.

    11. Sharecg.com

    Данный сайт в основном предназначен для художников для загрузки своих работ. Так что при желании Вы можете подыскать там подходящего дизайнера для своего проекта. Все работы выставляются под различными лицензиями, что обязательно проверять перед скачиванием, чтобы потом не попасть на деньги.

    12. Roenica.com

    Отличный сайт с графикой для инди проектов и казуалок.
    Всё разбито на категории по типу игры и упаковано в ZIP архивы. Есть и 2D и 3D графика, но так же как и в предыдущем случае стоит внимательно смотреть на лицензию, под которой распространяется контент.

    13. Blogoscoped.com

    Сам сайт - форум про Гугл и всё, что с ним связанно, но в 2006 году его участник Philip Lenssen выложил на нем около 700 спрайтов, которые теперь распространяются под Creative Commons License

    14. Lostgarden.com

    Сайт немного отличается от рассмотренных выше. Это блог игрового дизайнера, в котором время от времени появляется бесплатная графика для разработчиков игр. Так же интерес представляет и сам блог, в котором дизайнеру можно найти уйму важной и интересной информации.

    15. Subtlepatterns.com

    Безумное количество фонов и текстур для Ваших игр и приложений. Всё как и прежде бесплатно - только не забудьте поблагодарить автора.

    16. Openclipart.org

    Обширное сообщество с огромными объемами графики. Всё, что сможете найти на этом сайте, совершенно бесплатно. Правда вот поискать придется как следует.
    Ответ написан
    12 комментариев
  • Как подключить ASUS TF300TG вслепую?

    @MIP
    Подключить внешний дисплей через HDMI и сменить настройки
    Ответ написан
    1 комментарий