2012-02-15 79 views
6

好吧,我只是將我的TimePickerDialog切換爲TimePicker小部件,因爲客戶需求,我正在處理的活動中直接顯示它。ICS上的TimePicker NullPointerException

問題是當我按下上述TimePicker上的任何箭頭,我得到一個NullPointerException。

只是爲了澄清,沒有代碼什麼那麼連接到TimePicker除了這條線在我的活動的onCreate()方法:

((TimePicker) findViewById(R.id.time_picker)).setIs24HourView(true);

我發現在谷歌論壇關於這個問題this post,但沒有太大的幫助。

Here's my error log,我很遺憾地認爲這不會有太大的幫助。

此問題僅在ICS(Android 4.0 +)中測試時出現。有沒有人能夠解決這個問題?

+0

我沒能重現它! – dira 2012-05-22 13:56:43

+0

你是否在時間選擇器上設置了一個監聽器? – LuxuryMode 2012-06-11 14:54:11

+0

有同樣的問題,但我已經在4.0中運行了一個簡單的應用程序,它的工作原理。哼。 – Mikey 2012-09-21 04:02:27

回答

0

只是寫了一個示例應用程序並沒有錯誤的Galaxy SIII發現(4.0):

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.TextView; 
import android.widget.TimePicker; 
import android.widget.TimePicker.OnTimeChangedListener; 

public class TimePickerTestActivity extends Activity implements OnTimeChangedListener{ 

    private TimePicker tpTime = null; 
    private TextView tvTime = null; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     tvTime = (TextView)this.findViewById(R.id.tv_time); 

     tpTime = (TimePicker)this.findViewById(R.id.tp_time); 
     tpTime.setIs24HourView(Boolean.TRUE); 
     tpTime.setOnTimeChangedListener(this); 

    } 
    public void onTimeChanged(TimePicker tp, final int hrOfDay, final int min) { 
     if(tp.equals(tpTime)){ 
      tvTime.post(new Runnable(){ 

       public void run() { 
        tvTime.setText(hrOfDay+":"+min); 
       } 

      }); 
     } 
    } 
} 

而且佈局XML:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:orientation="vertical" > 

    <TimePicker android:id="@+id/tp_time" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" /> 

    <TextView android:id="@+id/tv_time" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" /> 
</LinearLayout> 

FYI:http://developer.android.com/reference/android/widget/TimePicker.html