まとめ:今日、目覚まし時計の追加は完了しましたが、プロセスはまだスムーズですが、結局、長押しで目覚ましイベントを削除するのに問題があり、長押しで削除できませんでした。目覚まし時計リストでスイッチスイッチコントロールを使用しているので、それは何かに関係しているので、スイッチコントロールを取り出してテストしました。案の定、長押しによる削除に気付きました。具体的な理由はまだ不明です。明日解決し、インターフェイスを美化してから、アラームトリガーイベントを学習します。
パッケージcom.example.naozhong; import android.app.TimePickerDialog; import android.content.Intent; android.os.Bundleをインポートします。 android.util.Logをインポートします。 import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.TimePicker; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; import java.util.Calendar; パブリック クラス AddAlarm は AppCompatActivityを拡張しますView.OnClickListener { private TextView hour;を実装します。 プライベートTextView分1; プライベートボタンsetTime; プライベートEditTextコンテンツ。 プライベートボタンの保存。 プライベートカレンダーカレンダー。 プライベートAlarmOperator alarmOperator; プライベートAlarmAdapter alarmAdapter; 文字列hourformat; 文字列の分フォーマット。 @Override protected void onCreate(Bundle savedInstanceState){ super .onCreate(savedInstanceState); setContentView(R.layout.addalarm); alarmOperator = new AlarmOperator(this ); 時間 = findViewById(R.id.hour); minute1 = findViewById(R.id.minute); setTime = findViewById(R.id.set_time); setTime.setOnClickListener(this ); content = findViewById(R.id.content); 保存 = findViewById(R.id.save); save.setOnClickListener(this ); } @Override public void onClick(View v){ スイッチ(v.getId()){ ケース R.id.set_time: addtime(); 休憩; ケースR.id.save:addalarm (); 休憩; } } private void addalarm(){ String userhour = hour.getText()。toString()。trim(); 文字列userminute = minute1.getText()。toString()。trim(); 文字列usercontent = content.getText ()。toString()。trim(); アラームBean = new Alarm( "2"、userhour、userminute、usercontent、0 ); Log.d( "volley" 、bean.hour); alarmOperator.insert(bean); テントintent2 = 新しいテント(これ、AlarmActivity。クラス); startActivity(intent2); } private void addtime(){ calendar = Calendar.getInstance(); int mhour = calendar.get(Calendar.HOUR_OF_DAY); int mminute = calendar.get(Calendar.MINUTE); 新しい TimePickerDialog(AddAlarm。この、新しいTimePickerDialog.OnTimeSetListener(){ @Override 公共 のボイドonTimeSet(TimePicker view、int hourOfDay、int minute){ calendar.set(Calendar.HOUR_OF_DAY、hourOfDay); calendar.set(Calendar.MINUTE、minute); カレンダーcurrentTime = Calendar.getInstance(); if(calendar.getTimeInMillis()<= currentTime.getTimeInMillis()){ calendar.setTimeInMillis(calendar.getTimeInMillis() + 24 * 60 * 60 * 1000 ); } hourformat = String.format(String.valueOf(hourOfDay)); minuteformat =String.format(String.valueOf(minute)); Toast.makeText(AddAlarm。この、 "" + hourformat + ":" + minuteformat、Toast.LENGTH_SHORT).SHOW(); hour.setText(hourformat); minute1.setText(minuteformat); } }、mhour、mminute、true ).show(); } }
protected void onCreate(Bundle savedInstanceState){ super .onCreate(savedInstanceState); setContentView(R.layout.alarm); addalarm = findViewById(R.id.addalarm); list = new ArrayList <> (); 文字列username = "2" ; alarmOperator = new AlarmOperator(this ); ListView alarmList = (ListView)findViewById(R.id.clock_list); alarmList.setOnItemLongClickListener(新しいAdapterView.OnItemLongClickListener(){ @Override public boolean onItemLongClick(AdapterView <?> parent、View view、final int position、long id){ AlertDialog.Builder builder = new AlertDialog.Builder(view.getContext()); builder.setMessage( "确定删除?" ); builder.setTitle( " 提示 " ); final Alarm [] alarms = { null }; builder.setPositiveButton( "确定"、新DialogInterface.OnClickListener(){ @Override 公共 のボイドonClick(DialogInterface dialog、int which){ alarms [ 0] = list.get(position); alarmOperator.deletebyuser( "1"、alarms [0] .hour、alarms [0 ] .minute); list.remove(position); alarmAdapter.notifyDataSetChanged(); } }); builder.setNegativeButton( "取消"、新DialogInterface.OnClickListener(){ @Override 公共 のボイドのonClick(DialogInterfaceダイアログ、int型){ } }); builder.create()。show(); falseを返し ます。 } }); init(ユーザー名); alarmAdapter = new AlarmAdapter(this 、list); alarmList.setAdapter(alarmAdapter); addalarm.setOnClickListener(l); }