Android関連のことを調べてみた2020年05月28日

Android関連のことを調べてみた2020年05月28日

AndroidStudioで可変リスト表示を作る(前編)

#AndroidStudioで可変リスト表示を作る(前編)
リスト表示を作ってみましょう

|Android|アンドロイド|
|:—|:—|
|Java|ジャバ|
|Kotlin|コトリン|

こういうリスト表示を作ってみます。
表示が固定ではなくボタンを押すと追加されるように作ります。

画面表示に使用する文字列を登録してしまいます。

“`strings.xml


QiitaHelloSample
追加
削除
追加する値

“`

ListViewと追加ボタン、削除ボタンを並べたいのでレイアウトを工夫します。
activity_main.xmlに元からあるTextView

元記事を表示

【Kotlin】AndroidxのPreferenceFragmentCompatを使ってみる

##はじめに
今回も例によって初学者向けの内容になっているかと思います。私自身が初学者である為、理解の浅い所や間違いなどあるかも知れません。都度ご指摘頂けると嬉しいです。

さて、Androidには昔からアプリの設定画面を簡単に作る仕組みがあります。ググれば記事は沢山見つかるのですが情報が古くなっているものも多かったので、Androidxライブラリでの実装をKotlinで書いてみようと思います。
##準備
Androidxライブラリを使うため、build.gradle(appのほう)のdependencies内に記述が必要です。

“`kotlin:build.gradle(Module.app)
dependencies{

implementation ‘androidx.preference:preference:1.1.1’//これを追加
}
“`

##構成
先に必要なファイルを挙げておきます。
-SettingActivity.kt
-activity_setting.xml
-SettingFragment.kt
-preference.xml

##

元記事を表示

Android Emulatorで撮影したスクリーンショットの保存先変更

#はじめに
Android Studio付属のエミュレータでスクリーンショットをたくさん撮る必要があったときに、
いちいちデスクトップに保存されてしまうのをなんとかしたい!と思い調べたことの備忘録です。
#環境
Android Studio 3.6(RC1)
Android Emulator 27.3.10
#方法
エミュレーター画面の横に表示されるパネルの最下部にある[詳細]ボタンを押すと表示されるメニューから、
[Screenshot save location]の項目で変更できます。
![C855A9C6-0034-43B8-8B12-670C268F1F8E.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631351/e05279c5-debe-0cb3-4cab-cc8950ab582f.png)

元記事を表示

Roomでデータベースに値を保存

# はじめに
[前回](https://qiita.com/karass/items/4f2e33446eb0253859ef)は、入力した値をリスト表示するところまで行いましいた。今回は、そのデータをデータベースに保存するようにします。

# 目標
Roomを追加するだけなので、今回はレイアウトの変更はありません。
アプリを閉じて、再起動したときにデータが保持されてるかを確認してください。

# 環境
– Android Studio 3.6.3
– Kotlin 1.3.72

# 作成手順
## Gradle

“`build.gradle
apply plugin: ‘kotlin-kapt’

dependencies {

implementation “androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0”

def room_version = “2.2.5”
implementation “androidx.room:room-runtime:$room_version”

元記事を表示

[Android]アクションバーの色を動的に変える

## アクションバーの色を変更する
“`MainActivity.kt
supportActionBar?.setBackgroundDrawable(ColorDrawable(Color.parseColor(“カラーコード”)))
“`

## ステータスバーの色を変更する
“`MainActivity.kt
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
window.statusBarColor = Color.parseColor(“カラーコード”)
“`

アプリをAPIバージョンの22以下に対応させる場合、ステータスバーの文字色が白色に固定されているため、ステータスバーの色が白系統の場合**文字の可読性**を損なわないか考慮する必要があります.

## ツールバーの色を変更する
“`MainActivity.kt
toolbar.setBackgroundColor(Color.parseColor(“カラーコード”))
“`

元記事を表示

AndroidStudioのKotlinでGsonを使う

#KotlinでGsonを使う
##Gsonを使う準備
Gsonは様々なメーカーから様々な機能を持ったGSonライブラリが提供されている。
便利なのを使うべきなのだろうけど最初から入っているGoogle社のGsonをここでは使用する。
※どうせカプセル化してしまえばあまり関係ないし

プロジェクトツリーのbuild.gradle(app)を開いて dependencies { の中に

“`build.gradle(app)
implementation ‘com.google.code.gson:gson:2.8.6’
“`

を追加して更新するとGsonが使えるようになります。

##値を管理するクラスを作る
Kotlinで値を管理するためのクラスを作ります。

“`sample.kt
open class gsonData(){
var dStr : String = “test”
var dInt : Int = 1234
var dDouble : Double = 5.6
}
“`

作ったクラスは

“`MainActivity.

元記事を表示

WSlで,Vue.jsによるアンドロイドアプリ開発環境を構築しようとしたときにハマった

備忘録

[【Vue.js】WSL 上で Vue.js を用いた Android アプリを開発する](https://github.com/NativeScript/nativescript-cli/issues/5304)
こちらを用いて,よっしゃ開発環境作るどーーと意気込んでいたら…

“`bash

sudo $ANDROID_HOME/tools/bin/sdkmanager “tools” “emulator” “platform-tools” “platforms;android-28” “build-tools;28.0.3” “extras;android;m2repository” “extras;google;m2repository”

Error: Could not find or load main class com.android.sdklib.tool.sdkmanager.SdkManagerCli
“`

とのエラーが出た.調べていると,JDKが8よりも新しいものを使うとうまくいかないとのこと.この段階で最新版のjava14を入れていた

元記事を表示

AndroidStudioで画面に表示する文字を登録する

#AndroidStudioで画面表示に使用する文字を登録
新規アプリケーションの作成で空のアクティビティを選んでから
activity_main.xmlにボタンを追加します。

“`activity_main.xml

元記事を表示

カウンターアプリ1号

とりあえず、自分の中でまとまった内容から追記していきます。
#Javaファイル

“`Java:MainActivity.java
package com.example.counterapp1;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity
implements View.OnClickListener{
int number;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreat

元記事を表示

Flutterでサポートされていない言語の場合に、Android端末で表示される言語

Flutterで多言語化している最中に、`supportedLocales` にリストされていない言語のときに、表示される言語が意図したとおりに動かず少しハマりました。

例として以下の言語設定の場合に、 端末の言語設定がドイツ語の場合 `en` が使用されると思っていました。

“`dart

supportedLocales: [
const Locale(‘en’),
const Locale(‘zh’),
const Locale(‘ja’),
],

“`

理由は[公式ドキュメント](https://flutter.dev/docs/development/accessibility-and-localization/internationalization)の 以下の文章。
> If an exact match for the device locale isn’t found, then the first supported locale with a matching languageCode is used. If that fails, the

元記事を表示

プルリク前後の apk ファイルを比較する GitHub Actions

下記のような yaml ファイルと [Danger](https://github.com/danger/danger) 用の設定ファイルを、リポジトリの `.github/workflows` 配下に置きます。

“`yaml:.github/workflows/apk-info.yml
name: apk info

on: pull_request

env:
GRADLE_BUILD_TASK: ‘assembleDebug’

jobs:
build-head:
name: Build head
runs-on: ubuntu-18.04
steps:
– name: Check out
uses: actions/checkout@v2
with:
ref: ${{ github.event.head.sha }}
– name: Set up JDK
uses: actions/setup-java@v1
with:

元記事を表示

AndroidStudioでのデバッグログを使ったデバッグ

#AndroidStudioでのデバッグ方法
ソフト開発をしていても予期しない動作(思い通りに処理されない)になったとき、実機やエミュレータでの表示で確認するには限界があります。

##ソース上での工夫
分岐の結果どっちに処理が進んだのかがわからない場合は、その気になる行にてデバッグ出力を行います。

**Log.d(“Sample”,”root 1″)**
このように記述します。

##デバッグログ
デバッグ画面の下、コンパイル状況などが表示されるログの下にタブがあるのでLogcatをクリックします。
初期状態だとアプリを実行する度に色々な情報が来て追えなくなりますが、ログ画面の上の方に「Verbose」と表示されるところを「Debug」に変更し、さらにその右に「Sample」と入力すれば上記のデバッグ出力を確認する事が出来ます。
コンパイルエラーが出るとそっちのログ画面に移りますので注意です。

**Log.d(“Sample”,”root 1″)**
ログとして i つまり Debugとして出力します。エラーの場合はErrorなど最適な出力もあります。
「Sample」はログを捕

元記事を表示

react nativeでTask :app:processDebugGoogleServices FAILEDでるやつ(Android)

react-nativeでよくエラーになってビルドに失敗することがあったので自分なりの解決方法を書いておきます。

環境はWindows10で、react-native cliを用いてAndroidアプリの開発を行っています
エミュレータはAndroidStudioを用いて実行しています。

C:Users/user/Awesomeapp
というディレクトリの体です。
#対処法
##1. npx react-native run-androidを実行する
“`terminal:C/Users/user/
cd Awesomeapp
npx react-native run-android
“`
これを行って基本的にはタイトルのエラーが出ると思います。

##2. react-native run-androidを実行する
“`terminal:C/Users/user/
cd Awesomeapp
react-native run-android
“`

ローカルにreact-native をインストールしている場合はnpxを通してだとうまくいかないときもなぜかうまくいくときが

元記事を表示

RecyclerViewとLiveDataを使ってリスト表示

# はじめに
今回は、[前回](https://qiita.com/karass/items/e71698af568f3386b2ab)の続きをやって聞きたいと思います。前回は`RecyclerView`を使ってダミーのデータをリスト表示することができました。今回は`EditText`で入力したデータをリスト表示できるようします。

# 目標

# 環境
– Android Studio 3.6.3
– Kotlin 1.3.72

# 作成手順
## Gradle
“`build.gradle
dependencies {
// 省略
implementation ‘androidx.cardview:cardview:1.0.0’
implementation ‘androidx.recycler

元記事を表示

Android Studio activity_main.xmlでXMLではなくDesign Editorを使う方法

#はじめに
`activity_main.xml`を開くと、デフォルトでは視覚的に操作するDesign Editorが開くかと。ただし、たまに`XML`の表示になっていることがある。
**Android Studioを使い慣れていない方は、ここで戸惑うことがたまにある。。**

そんな時のための記事

#Design Editorに変更する方法
`activity_main.xml`を開く
スクリーンショット 2020-05-25 14.55.28.jpg

スクリーンショット 2020-05-25 14.55.41.jpgAndroidのプッシュ通知アイコンの設定 -Cordova

Androidのプッシュ通知(Firebase Cloud Messaging)のアイコン設定でググってもうまくいかないところがあったのでまとめます。

本記事ではcordovaの設定ファイル`config.xml`にアイコン画像とカラーの指定を行うことで、Androidの設定ファイルである`AndroidManifest`を書き換えていきます。

結果としてAndroidビルドの実行で下のような`AndroidManifest.xml`が生成できていればOKです。

“`AndroidManifest.xml



FlutterでWebRTCをやってみる with AgoraSDK

# はじめに
`WebRTC` を使ったアプリを開発する機会があり、何かお手軽な `package` ないかなーと探していたところ `Flutter` で `WebRTC` を手軽に利用できる `plugin` を見つけたので試しにアプリを作成してみました。

# WebRTC とは
`WebRTC` (Web Real-Time Communication) とは、ビデオや音声、データをブラウザ間でやり取り可能にするための規格で、`Google` によってオープンソース化されました。 ユーザーはその `API` を経由することでリアルタイム通信を実現できます。

[参考: WebRTCの基本とP2P通信が成立するまでを学ぶ](https://qiita.com/daitasu/items/ae21b16361eb9f65ed43)

最近ではコロナの影響もあり、ウェブ会議システムやチャットツールなどの利用者が急増しています。

– Zoom
– Hang out
– Discord
– Microsoft Teams

スクリーンショッ</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Android</div>
<div class='tag-cloud-link'>iOS</div>
<div class='tag-cloud-link'>Dart</div>
<div class='tag-cloud-link'>WebRTC</div>
<div class='tag-cloud-link'>Flutter</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/yukitaka13-1110/items/e7350a5bc50f2056253f'>元記事を表示</a></div>
<h3 id=Spring Boot で簡単RESTful APIを作成する

# 目的

RESTってなんだかお堅いイメージ?があるかもしれませんが、実のところシンプルで使いやすいインタフェースだと思います。
実際、WebAPIではよく使われていますね。利用することは多いけど作るのはなんだか大変そう。。でも実は、アプリケーションフレームワークを使用するとこういうデザインパターン系はとても**楽に**造れたりします。

そこで、ここではSpring Boot を使用して**簡単に**RESTful APIを作成してみたいと思います。インタフェースを作るだけだと使いどころが分かりにくいので、Androidアプリから利用する部分もちょっとだけ載せます。

## そもそもRESTって

RESTって技術書なんかでは難しく解説していたりするけど、私の理解ではHTTPサーバーによってリソースを出し入れするインタフェースを提供することだと思っています。
そうするとWebAPIはみんなREST?ってことになりますが、ステートレスでシンプルなリソースであることがRESTの特長。つまりSQLみたいにHTTPのリクエストを使用するってことですね。

RESTに出し入れするデータのフ

通知内のボタンから再生状態を操作するとIllegalStateExceptionが発生する際の対処法

Androidのメディアプレイヤーで通知内のボタンから再生・停止操作をしたときにIllegalStateExceptionが発生する事象について、解決までに調べたことをまとめました。

※この記事の内容は、MediaSessionを使用した実装が前提となりますので、ご注意ください。

# 忙しい人向けの結論

MediaSessionを使用して音楽再生機能を実装する場合、以下のようにServiceをManifestに登録するかと思いますが、actionタグの中身が正しく指定されていないとIllegalStateExceptionが発生します。

“`xml:AndroidManifest.xml





“`
~~※actionタグの中身が間違っていることに2

AndroidStudioでKotlinの変数を覚える

#ここまでは
空のアクティビティの生成イベントを利用して画面に値を表示する方法がわかったところで次に進みます。

“`MainActivity.kt
class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

val tvMain = findViewById(R.id.tvMain)
tvMain.setText(“Hello Kotlin World!”)
}
}
“`
MainActivity.kt を上のように2行追加すると Hello World!の代わりに Hello Kotlin World!が表示されます。

この**tvMain.setText(“Hello Kotlin World!”

元記事を表示

OTHERカテゴリの最新記事