Javaを利用してAndroidStudioでのアプリ製作をおこなっております。
現在タイトルの様なエラーが起きてしまいました。
**■ レイアウトファイル **
xml
1<Button 2android:id="@+id/btn1" 3android:layout_width="wrap_content" 4android:layout_height="wrap_content" 5android:text="ボタン1" 6android:layout_gravity="center" /> 7 8<Button 9android:id="@+id/btn2" 10android:layout_width="wrap_content" 11android:layout_height="wrap_content" 12android:text="ボタン2" 13android:layout_gravity="center" />
■ Javaファイル1
[MainActivity.java]
Java
1public class MainActivity extends AppCompatActivity { 2 3 @Override 4 protected void onCreate(Bundle savedInstanceState) { 5 super.onCreate(savedInstanceState); 6 setContentView(R.layout.activity_main); 7 8 BtnClick btnClick= new BtnClick(); 9 10 Button btn1 = findViewById(R.id.btn1 ); 11 btn1.setOnClickListener(btnClick); 12 13 Button btn2 = findViewById(R.id.btn2 ); 14 btn2.setOnClickListener(btnClick); 15 } 16}
■ Javaファイル2
[BtnClick.java]
public class BtnClickimplements View.OnClickListener { View v; // ビュー int time; // タイマーを動かす時間を入れる boolean bool; // 時間の判定 int tap; // タップ @Override public void onClick(View view) { v = view; switch (v.getId()) { case R.id.btn1: time= 1000; bool = true; tap = 0; // スタートボタンの有効無効 if (bool) { v.setEnabled(false); } new Handler().postDelayed(new Runnable() { @Override public void run() { bool= false; tap = 0; v.setEnabled(true); Log.i("comment", "終了時刻になりました"); } }, time); break; case R.id.btn2: // 時間内であれば、btn2のタップをカウントアップ if (bool) { tap += 1; Log.i("comment", "現在のタップ数" + tap + "回"); } break; } } }
■起きている不具合
上記のようなコードを書きますと、
BtnClick.javaファイルのHandler内で使用している
btn1ボタンの有効化 v.setEnabled(true); の部分のみ無視されてしまいます。
Handlerを使用している理由につきましては、
初めにTimerを使用してみて同様にうまくいかず、
下記のサイト様の記事を参考に試してみた次第です。
https://re-engines.com/2019/12/19/%E3%80%90java%E3%80%91handler%E3%82%AF%E3%83%A9%E3%82%B9%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%BE%E3%81%A8%E3%82%81%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%81%9F/
どういったところを重点的に見ていくとよいか、アドバイスをいただけますと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/18 11:09
2020/02/18 14:24
2020/02/18 17:42
2020/02/19 00:34