2

私はアンドロイドを初めて使用します。試験管理に使用できるアプリを持っています。ユーザーはすべての科目の日付を挿入でき、アプリは各科目の時間 (時間単位) を提供します。各被験者に割り当てられた時間 (たとえば、48 時間) であり、ゼロになる必要があります。ゼロになると、その被験者に割り当てられた時間が過ぎたことを示すアラームが再生されます。これが私のコードです。

public class Alarmpage extends Activity{

    TextView hourshow,minshow,secshow;
    SQLiteDatabase database_read;
    sampleDatabase samp;
    Cursor cur;
    Handler handler;
    int initStart;
    Runnable updater;
    int  t;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.alarm);
        hourshow=(TextView)findViewById(R.id.hr);
        samp=new sampleDatabase(getApplicationContext());
        database_read=samp.getReadableDatabase();
        minshow=(TextView)findViewById(R.id.min);
        secshow=(TextView)findViewById(R.id.sec);
        cur=database_read.query(sampleDatabase.TABLE_SEC, null, null, null, null, null, null);
    }

    public void onResume() {

        super.onResume();
        if(cur.moveToFirst())
            {
                 t=cur.getInt(3);
                 Log.e("time", String.valueOf(t));
            }
        handler=new Handler();
        initStart = (int) SystemClock.elapsedRealtime();
        Log.e("init", String.valueOf(initStart));
        updater = new Runnable() {

            @Override
            public void run() {

                // TODO Auto-generated method stub
                 int sec,minute,hour;
                  int diff = t*60*60;
                Log.e("time in sec", String.valueOf(diff));
                System.out.println(diff);


                /*if(diff>=1)
                {
                     hour= diff/3600;
                }
                else {hour = 00; }
                hourshow.setText(String.valueOf(hour));
                Log.e("diff after hour", String.valueOf(diff));
                Log.e("hour", String.valueOf(hour));
                minute = (diff % 3600) / 60;


                minshow.setText(":"+String.valueOf(minute));
                    sec= (diff % 60);

                secshow.setText(":"+String.valueOf(sec));*/
                if (diff >= 1) {
                    sec =  (int) (diff%60);
                } else {
                    sec=00;
                }
                secshow.setText(":"+String.valueOf(sec));
                diff = diff/60;
                if (diff >= 1) {
                    minute =  (int) (diff%60);
                } else {
                    minute=00;
                }
                minshow.setText(":"+String.valueOf(minute));
                diff = diff/60;
                if (diff >= 1) {
                    hour =  (int) (diff%24);
                } else {hour = 00; }
                hourshow.setText(String.valueOf(hour));
                t=(t*60*60)-1;
                handler.postDelayed(this, 1000);
            }
        };
        handler.post(updater);
    }

    @Override
    protected void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();
        handler.removeCallbacks(updater);
    }
}

しかし、いくつかの値が表示されています。しかし、それらは正しくありません。親切に助けてください。このコードのエラーがわかりません。よろしくお願いします

4

0 に答える 0