teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

情報の改良

2021/02/16 03:50

投稿

j.f15
j.f15

スコア23

answer CHANGED
@@ -1,3 +1,4 @@
1
+ 下にさらに良いと思う実装方法に修正しました。(間違っていたら指摘していただけると助かります)
1
2
  ```
2
3
  //ログイン処理
3
4
  login_binding.loginBtn.setOnClickListener {
@@ -10,4 +11,54 @@
10
11
 
11
12
  ヒントを頂いたり試行錯誤したりで何とか望んでいた実装は出来たのですが、
12
13
  inflaterの理解をせずに使っていたり間違った実装をしていたりと酷いプログラムに
13
- なっていると思うので引き続き調べていきたいと思います。
14
+ なっていると思うので引き続き調べていきたいと思います。
15
+
16
+ ※追記。上記の方法よりも良いと思う実装方法
17
+
18
+ ・LoginActivity
19
+ ```
20
+ class LoginActivity : AppCompatActivity() {
21
+
22
+ private lateinit var binding : ActivityLoginBinding
23
+
24
+ override fun onCreate(savedInstanceState: Bundle?) {
25
+ super.onCreate(savedInstanceState)
26
+ binding = ActivityLoginBinding.inflate(layoutInflater)
27
+ setContentView(binding.root)
28
+
29
+ val actionBar: androidx.appcompat.app.ActionBar? = supportActionBar
30
+ getSupportActionBar()?.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
31
+ getSupportActionBar()?.setCustomView(R.layout.login_header);
32
+ actionBar?.setDisplayHomeAsUpEnabled(true)
33
+
34
+
35
+ val loginFragment = LoginFragment()
36
+ val fragmentTransaction = supportFragmentManager.beginTransaction()
37
+ fragmentTransaction.add(R.id.login_fragment_container, loginFragment)
38
+ fragmentTransaction.commit()
39
+ }
40
+
41
+ //プログレスバーの表示
42
+ fun progressbarVisible() {
43
+ binding.loginProgressbarLayout.visibility = View.VISIBLE
44
+ }
45
+
46
+ //プログレスバーの非表示
47
+ fun progressbarInvisible() {
48
+ binding.loginProgressbarLayout.visibility = View.INVISIBLE
49
+ }
50
+ }
51
+ ```
52
+
53
+ ・LoginFragment
54
+ ```
55
+ //ログイン処理
56
+ login_binding.loginBtn.setOnClickListener {
57
+ (activity as LoginActivity?)!!.progressbarVisible()
58
+ var user_token = viewModel.sendJsonData()
59
+
60
+ Log.d("トークン", ""+user_token)
61
+
62
+ // (activity as LoginActivity?)!!.progressbarInvisible()
63
+ }
64
+ ```