Android app java source code

Содержание
  1. Saved searches
  2. Use saved searches to filter your results more quickly
  3. java-android-studio-project
  4. Here are 25 public repositories matching this topic.
  5. dev-aniketj / WeatherApp-Android
  6. achmadqomarudin / NewsApp
  7. Shefali-Upadhyaya / Space-Impact-Game
  8. swati-gwc / Amivents
  9. SameetAsadullah / Bisto-Chat-Java-Firebase
  10. SameetAsadullah / Hotel-Reservation-Application
  11. Anupam1337 / Web-Browser
  12. SameetAsadullah / Bisto-Chat-Java-PHP
  13. D-Coder135 / Multiple_Screens_App_JAVA
  14. aqib1 / Java-Android-2k16
  15. bayujunisp / Aplikasi-Resep-Android-Happy-Cooking
  16. youssefrashed1999 / English-Arabic-Dictionary-Android-App
  17. D-Coder135 / Flashlight_ImageButton_App_JAVA
  18. pedrinholeda / ConversorMoedas
  19. parisubalan / Mark-Current-Location-in-Map
  20. canogulelma / ChatApp
  21. architSrivastav / anagrams
  22. Your-Skin / YourSkin
  23. SHUKLA-KUSHAGRA / Superheroes
  24. quocthang0507 / AndroidCalculator
  25. Improve this page
  26. Add this topic to your repo
  27. Пишем первое приложение для Android
  28. Установка необходимых программ и утилит
  29. Запуск виртуального устройства
  30. Список устройств
  31. Создание проекта
  32. Структура проекта
  33. Первые строки
  34. Square.java
  35. Player.java
  36. Game.java
  37. Определение победителя
  38. WinnerCheckerHorizontal.java
  39. WinnerCheckerVertical.java
  40. WinnerCheckerDiagonalLeft.java
  41. WinnerCheckerDiagonalRight.java
  42. Видео готового приложения
  43. Saved searches
  44. Use saved searches to filter your results more quickly
  45. android-project
  46. Here are 77 public repositories matching this topic.
  47. imShakil / BloodBank
  48. ritik2410 / Elegant_Calculator
  49. PriyanshuArora2001 / AAHAR-APP
  50. mohaiminur / Textchat
  51. rizwansoaib / Android-Library-Management
  52. theashwin / automator
  53. dev-aniketj / WeatherApp-Android
  54. codewithsandy / Ecommerce-Android-App
  55. CaptainVish / Medicine-Time-Android-App-Project
  56. Anni1123 / Android-Projects
  57. Raj-m01 / Android-Chat-App
  58. fari-zma / TruthDare
  59. afsalashyana / Genuine-Inspiration
  60. afsalashyana / V_Note
  61. msdeep14 / Tripcount

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

java-android-studio-project

Here are 25 public repositories matching this topic.

dev-aniketj / WeatherApp-Android

💙 💙 Beautiful Weather 🌧️ Application.

achmadqomarudin / NewsApp

A Sample News App written in Java using Android Architecture Components, MVVM, etc.

Shefali-Upadhyaya / Space-Impact-Game

A 2D android-based game application created in Android Studio

swati-gwc / Amivents

Mobile App which shows information about clubs and events hosted by it in a college.

Читайте также:  Default include path php

SameetAsadullah / Bisto-Chat-Java-Firebase

An Android Chatting Application coded in Java language using Android Studio. Backend is implemented using Firebase. Users can send messages, delete messages, edit messages, send images, and set their profile pictures

SameetAsadullah / Hotel-Reservation-Application

A Hotel Reservation Application named as VBook, coded in Java and PHP. Vendor and Customer are the two users of this project

Anupam1337 / Web-Browser

A Web Browser Android Project that allows you to surf over internet along with action controls.

SameetAsadullah / Bisto-Chat-Java-PHP

An Android Chatting Application coded in Java language using Android Studio. Backend is implemented in PHP Language i.e, APIs. Users can send messages, delete messages, edit messages, send images, and set their profile pictures

D-Coder135 / Multiple_Screens_App_JAVA

This repo contains an android application with multiple screens.

aqib1 / Java-Android-2k16

Android and java project created while giving training in EVS

bayujunisp / Aplikasi-Resep-Android-Happy-Cooking

Aplikasi Resep Android Happy Cooking, dibuat dengan android studio, dengan native android java dan database mysql Rest API

youssefrashed1999 / English-Arabic-Dictionary-Android-App

English to Arabic Dictionary Android application

D-Coder135 / Flashlight_ImageButton_App_JAVA

This repo contains an android application that turns the flashlight on & off.

pedrinholeda / ConversorMoedas

Conversor Simples de Moedas feito em java para mobile.

parisubalan / Mark-Current-Location-in-Map

Mark Current Location in Google Map using Fused Location Provider Client in Java

canogulelma / ChatApp

architSrivastav / anagrams

«Anagram Game: Generate words with an additional letter based on a given word» is an android studio project in form of a game.

Your-Skin / YourSkin

Your Skin is an Android Application that users can check skincare product ingredients by searching by categories of Skincare product or type search. This application using java and XML as the Frontend and PHP and SQL database as the backend.

SHUKLA-KUSHAGRA / Superheroes

Android app which calls superhero api which genereate random superheroes and also tells about their attributes

quocthang0507 / AndroidCalculator

Một ứng dụng Máy tính Android giống Windows Calculator nhưng vẫn còn thua xa

Improve this page

Add a description, image, and links to the java-android-studio-project topic page so that developers can more easily learn about it.

Add this topic to your repo

To associate your repository with the java-android-studio-project topic, visit your repo’s landing page and select «manage topics.»

Источник

Пишем первое приложение для Android

В любом деле самое сложное — это начало. Часто бывает тяжело войти в контекст, с чем столкнулся и я, решив разработать свое первое Android-приложение. Настоящая статья для тех, кто хочет начать, но не знает с чего.

Статья затронет весь цикл разработки приложения. Вместе мы напишем простенькую игру “Крестики-Нолики” с одним экраном (в ОС Android это называется Activity).

Отсутствие опыта разработки на языке Java не должно стать препятствием в освоении Android. Так, в примерах не будут использоваться специфичные для Java конструкции (или они будет минимизированы на столько, на сколько это возможно). Если Вы пишете, например, на PHP и знакомы с основополагающими принципами в разработке ПО, эта статья будет вам наиболее полезна. В свою очередь так как, я не являюсь экспертом по разработке на Java, можно предположить, что исходный код не претендует на лейбл “лучшие практики разработки на Java”.

Установка необходимых программ и утилит

  1. JDK — набор для разработки на языке Java;
  2. Android SDK and AVD Manager — набор утилит для разработки + эмулятор;
  3. IDE c поддержкой разработки для Android:
    • Eclipse + ADT plugin;
    • IntelliJ IDEA Community Edition;
    • Netbeans + nbandroid plugin;

Утилиты устанавливаются в определенном выше порядке. Ставить все перечисленные IDE смысла нет (разве только если Вы испытываете затруднения с выбором подходящей). Я использую IntelliJ IDEA Community Edition, одну из самых развитых на данный момент IDE для Java.

Запуск виртуального устройства

Запустив AVD Manager и установив дополнительные пакеты (SDK различных версий), можно приступить к созданию виртуального устройства с необходимыми параметрами. Разобраться в интерфейсе не должно составить труда.

Список устройств

Создание проекта

Мне всегда не терпится приступить к работе, минимизируя подготовительные мероприятия, к которым относится создание проекта в IDE, особенно, когда проект учебный и на продакшн не претендует.

По нажатию кнопки F6 проект соберется, откомпилируется и запустится на виртуальном девайсе.

Структура проекта

На предыдущем скриншоте видна структура проекта. Так как в этой статье мы преследуем сугубо практические цели, заострим внимание лишь на тех папках, которые будем использовать в процессе работы. Это следующие каталоги: gen, res и src.

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

Папка res предназначена для хранения ресурсов, таких как картинки, тексты (в том числе переводы), значения по-умолчанию, макеты (layouts).

src — это папка в которой будет происходить основная часть работы, ибо тут хранятся файлы с исходными текстами нашей программы.

Первые строки

Как только создается Activity (экран приложения), вызывается метод onCreate(). IDE заполнила его 2 строчками:

super.onCreate(savedInstanceState); setContentView(R.layout.main); 

Метод setContentView (равносильно this.setContentView) устанавливает xml-макет для текущего экрана. Далее xml-макеты будем называть «layout», а экраны — «Activity». Layout в приложении будет следующий:

Для этого приложения идеально подойдет TableLayout. Id можно присвоить любому ресурсу. В данном случае, TableLayout присвоен При помощи метода findViewById() можно получить доступ к виду:

 private TableLayout layout; // это свойство класса KrestikinolikiActivity public void onCreate(Bundle savedInstanceState)

Теперь необходимо реализовать метод buildGameField(). Для этого требуется сгенерировать поле в виде матрицы. Этим будет заниматься класс Game. Сначала нужно создать класс Square для ячеек и класс Player, объекты которого будут заполнять эти ячейки.

Square.java

package com.example; public class Square < private Player player = null; public void fill(Player player) < this.player = player; >public boolean isFilled() < if (player != null) < return true; >return false; > public Player getPlayer() < return player; >> 

Player.java

package com.example; public class Player < private String name; public Player(String name) < this.name = name; >public CharSequence getName() < return (CharSequence) name; >> 

Все классы нашего приложения находятся в папке src.

Game.java

package com.example; public class Game < /** * поле */ private Square[][] field; /** * Конструктор * */ public Game() < field = new Square[3][3]; squareCount = 0; // заполнение поля for (int i = 0, l = field.length; i < l; i++) < for (int j = 0, l2 = field[i].length; j < l2; j++) < field[i][j] = new Square(); squareCount++; >> > public Square[][] getField() < return field; >> 

Инициализация Game в конструкторе KrestikinolikiActivity.

public KrestikinolikiActivity() < game = new Game(); game.start(); // будет реализован позже >

Метод buildGameField() класса KrestikinolikiActivity. Он динамически добавляет строки и колонки в таблицу (игровое поле):

private Button[][] buttons = new Button[3][3]; //(. ) private void buildGameField() < Square[][] field = game.getField(); for (int i = 0, lenI = field.length; i < lenI; i++ ) < TableRow row = new TableRow(this); // создание строки таблицы for (int j = 0, lenJ = field[i].length; j < lenJ; j++) < Button button = new Button(this); buttons[i][j] = button; button.setOnClickListener(new Listener(i, j)); // установка слушателя, реагирующего на клик по кнопке row.addView(button, new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT)); // добавление кнопки в строку таблицы button.setWidth(107); button.setHeight(107); >layout.addView(row, new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.WRAP_CONTENT)); // добавление строки в таблицу > > 

В строке 8 создается объект, реализующий интерфейс View.OnClickListener. Создадим вложенный класс Listener. Он будет виден только из KrestikinolikiActivity.

public class Listener implements View.OnClickListener < private int x = 0; private int y = 0; public Listener(int x, int y) < this.x = x; this.y = y; >public void onClick(View view) < Button button = (Button) view; >> 
public class Game < /** * игроки */ private Player[] players; /** * поле */ private Square[][] field; /** * начата ли игра? */ private boolean started; /** * текущий игрок */ private Player activePlayer; /** * Считает колличество заполненных ячеек */ private int filled; /** * Всего ячеек */ private int squareCount; /** * Конструктор * */ public Game() < field = new Square[3][3]; squareCount = 0; // заполнение поля for (int i = 0, l = field.length; i < l; i++) < for (int j = 0, l2 = field[i].length; j < l2; j++) < field[i][j] = new Square(); squareCount++; >> players = new Player[2]; started = false; activePlayer = null; filled = 0; > public void start() < resetPlayers(); started = true; >private void resetPlayers() < players[0] = new Player("X"); players[1] = new Player("O"); setCurrentActivePlayer(players[0]); >public Square[][] getField() < return field; >private void setCurrentActivePlayer(Player player) < activePlayer = player; >public boolean makeTurn(int x, int y) < if (field[x][y].isFilled()) < return false; >field[x][y].fill(getCurrentActivePlayer()); filled++; switchPlayers(); return true; > private void switchPlayers() < activePlayer = (activePlayer == players[0]) ? players[1] : players[0]; >public Player getCurrentActivePlayer() < return activePlayer; >public boolean isFieldFilled() < return squareCount == filled; >public void reset() < resetField(); resetPlayers(); >private void resetField() < for (int i = 0, l = field.length; i < l; i++) < for (int j = 0, l2 = field[i].length; j < l2; j++) < field[i][j].fill(null); >> filled = 0; > > 

Определение победителя

К. О. подсказывает, что в крестики-нолики выирывает тот, кто выстроет X или O в линию длиной, равной длине поля по-вертикали, или по-горизонтали, или по-диагонали. Первая мысль, которая приходит в голову — это написать методы для каждого случая. Думаю, в этом случае хорошо подойдет паттерн Chain of Responsobility. Определим интерфейс

package com.example; public interface WinnerCheckerInterface

Так как Game наделен обязанностью выявлять победителя, он реализует этот интерфейс. Настало время создать виртуальных «лайнсменов», каждый из которых будет проверять свою сторону. Все они реализует интерфейс WinnerCheckerInterface.

WinnerCheckerHorizontal.java

package com.example; public class WinnerCheckerHorizontal implements WinnerCheckerInterface < private Game game; public WinnerCheckerHorizontal(Game game) < this.game = game; >public Player checkWinner() < Square[][] field = game.getField(); Player currPlayer; Player lastPlayer = null; for (int i = 0, len = field.length; i < len; i++) < lastPlayer = null; int successCounter = 1; for (int j = 0, len2 = field[i].length; j < len2; j++) < currPlayer = field[i][j].getPlayer(); if (currPlayer == lastPlayer && (currPlayer != null && lastPlayer !=null)) < successCounter++; if (successCounter == len2) < return currPlayer; >> lastPlayer = currPlayer; > > return null; > > 

WinnerCheckerVertical.java

package com.example; public class WinnerCheckerVertical implements WinnerCheckerInterface < private Game game; public WinnerCheckerVertical (Game game) < this.game = game; >public Player checkWinner() < Square[][] field = game.getField(); Player currPlayer; Player lastPlayer = null; for (int i = 0, len = field.length; i < len; i++) < lastPlayer = null; int successCounter = 1; for (int j = 0, len2 = field[i].length; j < len2; j++) < currPlayer = field[j][i].getPlayer(); if (currPlayer == lastPlayer && (currPlayer != null && lastPlayer !=null)) < successCounter++; if (successCounter == len2) < return currPlayer; >> lastPlayer = currPlayer; > > return null; > > 

WinnerCheckerDiagonalLeft.java

package com.example; public class WinnerCheckerDiagonalLeft implements WinnerCheckerInterface < private Game game; public WinnerCheckerDiagonalLeft(Game game) < this.game = game; >public Player checkWinner() < Square[][] field = game.getField(); Player currPlayer; Player lastPlayer = null; int successCounter = 1; for (int i = 0, len = field.length; i < len; i++) < currPlayer = field[i][i].getPlayer(); if (currPlayer != null) < if (lastPlayer == currPlayer) < successCounter++; if (successCounter == len) < return currPlayer; >> > lastPlayer = currPlayer; > return null; > > 

WinnerCheckerDiagonalRight.java

package com.example; public class WinnerCheckerDiagonalRight implements WinnerCheckerInterface < private Game game; public WinnerCheckerDiagonalRight(Game game) < this.game = game; >public Player checkWinner() < Square[][] field = game.getField(); Player currPlayer; Player lastPlayer = null; int successCounter = 1; for (int i = 0, len = field.length; i < len; i++) < currPlayer = field[i][len - (i + 1)].getPlayer(); if (currPlayer != null) < if (lastPlayer == currPlayer) < successCounter++; if (successCounter == len) < return currPlayer; >> > lastPlayer = currPlayer; > return null; > > 
//(. ) /** * "Судьи" =). После каждого хода они будут проверять, * нет ли победителя */ private WinnerCheckerInterface[] winnerCheckers; //(. ) public Game() < //(. ) winnerCheckers = new WinnerCheckerInterface[4]; winnerCheckers[0] = new WinnerCheckerHorizontal(this); winnerCheckers[1] = new WinnerCheckerVertical(this); winnerCheckers[2] = new WinnerCheckerDiagonalLeft(this); winnerCheckers[3] = new WinnerCheckerDiagonalRight(this); //(. ) >
public Player checkWinner() < for (WinnerCheckerInterface winChecker : winnerCheckers) < Player winner = winChecker.checkWinner(); if (winner != null) < return winner; >> return null; > 
public void onClick(View view) < Button button = (Button) view; Game g = game; Player player = g.getCurrentActivePlayer(); if (makeTurn(x, y)) < button.setText(player.getName()); >Player winner = g.checkWinner(); if (winner != null) < gameOver(winner); >if (g.isFieldFilled()) < // в случае, если поле заполнено gameOver(); >> 
private void gameOver(Player player) < CharSequence text = "Player \"" + player.getName() + "\" won!"; Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); game.reset(); refresh(); >private void gameOver()

Для Java, gameOver(Player player) и gameOver() — разные методы. Воспользовавшись Builder’ом Toast.makeText, можно быстро создать и показать уведомление. refresh() обновляет состояние поля:

private void refresh() < Square[][] field = game.getField(); for (int i = 0, len = field.length; i < len; i++) < for (int j = 0, len2 = field[i].length; j < len2; j++) < if (field[i][j].getPlayer() == null) < buttons[i][j].setText(""); >else < buttons[i][j].setText(field[i][j].getPlayer().getName()); >> > > 

Готово! Надеюсь, эта статья помогла Вам освоиться в мире разработки под OS Android. Благодарю за внимание!

Видео готового приложения

PS: статья была опубликована по просьбе комментаторов этого поста.

Источник

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

android-project

Here are 77 public repositories matching this topic.

imShakil / BloodBank

A simple android project for blood management system.

ritik2410 / Elegant_Calculator

A simple android calculator like IOS UI.

PriyanshuArora2001 / AAHAR-APP

This is a food donation android application designed to reduce food wastage by donating excess food to poor or needy peoples. This application is based on JAVA and currently under the development phase.

mohaiminur / Textchat

Android Chating Application project with Machine Learning ML-KIT

rizwansoaib / Android-Library-Management

Android Library Management Project

theashwin / automator

Automator — App That Works For You

dev-aniketj / WeatherApp-Android

💙 💙 Beautiful Weather 🌧️ Application.

codewithsandy / Ecommerce-Android-App

An android app that recommended e-commerce solution built in java using Firebase.

CaptainVish / Medicine-Time-Android-App-Project

Medicine Time is an native android application meant to aid the forgetful and busy with remembering to take their daily medications. It is designed for users who need a little help keeping track of their medication schedule and who are dedicated to keeping the schedule.

Anni1123 / Android-Projects

Adding My Android Projects Here built using Java

Raj-m01 / Android-Chat-App

An android chat app built using java and firebase services

fari-zma / TruthDare

A simple Truth or Dare game. Get your position around your phone and get started. If you wish you can add more truths and dares.

afsalashyana / Genuine-Inspiration

Android Application for Inspiring Quotes Developed For Tutorial Purposes

afsalashyana / V_Note

Simple Android application to save notes

msdeep14 / Tripcount

Android application for splitting and managing expenses

Источник

Оцените статью