2012-08-04 65 views
1

當我運行該程序時,系統當前時間顯示在文本視圖中。 現在我有一個按鈕,一個edittext和一個textview。 我想要當我把40放在編輯文本上時,我計算當前小時秒,並通過在文本視圖上按下按鈕來顯示它。 我只是想計算當前的小時秒,當我從edittext得到它。 如你所知,當電流小時,第二個是由數來計算,這將在分針和時針太如何在當前時間添加時間?

幫助實現我請 這個代碼顯示當前時間:

Thread myThread = null; 
    Runnable runnable = new CountDownRunner(); 
    myThread= new Thread(runnable); 
    myThread.start(); 
} 
public void doWork() { 
    runOnUiThread(new Runnable() { 
     public void run() { 
      try{  
       txtCurrentTime= (TextView)findViewById(R.id.lbltime); 
        Date dt = new Date(); 
        int hours = dt.getHours(); 
        int minutes = dt.getMinutes(); 
        int seconds = dt.getSeconds(); 
        String curTime = hours + ":" + minutes + ":" + seconds; 
        txtCurrentTime.setText(curTime); 
+5

這不是很清楚。你想做什麼以及有什麼問題? – kgautron 2012-08-04 13:30:05

+0

是的,清楚你想要做什麼onclick。 – 2012-08-04 14:39:22

+0

'40'的單位是什麼?它在第二?你想在當前時間增加40秒?如果我理解你正確的是你的解決方案'Date dt = new Date(); \t \t long newTime = dt.getTime()+(40)/ 1000; \t \t \t \t Date newData = new Date(newTime); \t \t' – 2012-08-04 15:19:13

回答

0

當前時間:

   txtCurrentTime= (TextView)findViewById(R.id.txtcurrunt); 
       Date dt = new Date(); 
       int hours = dt.getHours(); 
       int minutes = dt.getMinutes(); 
       int seconds = dt.getSeconds(); 
       String curTime = hours + ":" + minutes + ":" + seconds; 
       txtCurrentTime.setText(curTime); 

用戶輸入:

   userInput=(EditText)findViewById(R.id.userInputInSeconds); 
       String userInput=userInput.getText().toString(); 
       long increment=Long.parseLong(userInput); 
//New Time 
       Date dt = new Date(); 
       long newTime =dt.getTime()+(increment)/1000; 
       Date newData=new Date(newTime); 
       int hours = newData.getHours(); 
       int minutes = newData.getMinutes(); 
       int seconds = newData.getSeconds(); 
       String newTimeString = hours + ":" + minutes + ":" + seconds; 

       txtNewTime= (TextView)findViewById(R.id.txtNew); 
       txtNewTime.setText(newTimeString); 

我希望它能幫助你... :)

+0

非常感謝。 userInput =(的EditText)findViewById(R.id.userInputInSeconds); String userInput = userInput.getText()。toString();我不知道你的意思? – 2012-08-04 21:16:24

+0

你運行過這段代碼嗎? – 2012-08-04 21:48:02

+0

@M Mohsin Naeem我不認爲你運行的代碼有大量的錯誤,我認爲你應該運行它1ce之前發佈回答 – surhidamatya 2012-09-03 05:27:50

0

使用日曆。你將更容易處理當前時間的秒數。

int seconds=Integer.parseInt(mTextView.getText()); // get textview's value (in integer) 

Calendar cal=Calendar.getInstance(); 

int hours = cal.get(Calendar.HOUR_OF_DAY); 
int minutes = cal.get(Calendar.MINUTE); 
int seconds = cal.get(Calendar.SECOND); 
String currentTimeString = String.format("%1$tH:%1$tM:%1$tS",cal);//24-hour format : HH:MM:SS 

cal.add(Calendar.SECOND,seconds); 
String newTimeString = String.format("%1$tH:%1$tM:%1$tS",cal);//24-hour format : HH:MM:SS 

對於日期的更多格式:參觀http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html