1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Androidアプリ作成Tips

Last updated at Posted at 2021-03-16

#はじめに
アプリ開発で忘れがちなアレコレを書いていきます。
個人的なメモとして残すので順序など適当な所も多いです。

##戻るボタンの簡単な実装

  1. Buttonを配置してonClickのコールバックでfinish()を実行する。
  2. AndroidManifest.xmlにandroid:parentActivityName属性を追加
2の記入例
    <activity
        android:name=".[戻るボタンを追加する対象]"
        android:parentActivityName="[App.Name].[親のアクティビティ]">
    </activity>

##Viewへのアクセス方法
###findViewbyIdを使ったアクセス

val testTextView = findViewById<EditText>(R.id.testTextView)
testTextView = "Testです"

###Kotlin Android Extensionでアクセス

testButtonView.setOnClickListener {
        testTextView.text = "Testです"
}

###ViewBindingを使ったアクセス 現在の公式推奨方法
1.app/build.gradleにviewBinding設定を追加してSync

app/build.gradle
android {
    .....
    buildFeatures {
        viewBinding = true
    }
    ....
}

2.アクティビティからのアクセス方法

class MainActivity : AppCompatActivity() {
    private lateinit var binding: ActivityMainBinding          // 追加
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)  // 追加
        setContentView(binding.root)                           // 追加    
        binding.testTextView.text = "Testです"
    }
}

##端末設定に関わらずライトモードを使用する
アンドロイドでは端末設定をダークモードにしている場合、アプリはそれに従ってしまいダークモードのカラーが設定されてしまう。
そうするとダークモード用のレイアウトを用意していないと意図しない配色になる可能性がある。
対策としてthemes.xmlの設定を変えてダークモードに非対応にすると良い。

parentの設定をTheme.MaterialComponents.Lightを継承させる。

res/values/themes.xml
...
    <style name="Theme.MyPlot" parent="Theme.MaterialComponents.Light">
...
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?