2012-01-17 10 views
2

私はhttp://developer.android.com/resources/tutorials/views/hello-timepicker.html、 からコンパイル中にエラーが発生しないようにしようとしていますが、ボタンを押しても何も起こりません。完全なサイレント。どうして? Btw - ボタンクリックイベントにLog.d()を入れようとしましたが、動作しますが、timepickerのポップアップはまだありません。アンドロイドサンプルのTimePickerが動作しない

Main.xmlは例から

import java.util.Calendar; 

import android.app.Activity; 
import android.app.DatePickerDialog; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 
import android.widget.DatePicker; 
import android.widget.TextView; 

public class TestastestasActivity extends Activity { 

     private DatePickerDialog.OnDateSetListener mDateSetListener = 
       new DatePickerDialog.OnDateSetListener() { 

        public void onDateSet(DatePicker view, int year, 
              int monthOfYear, int dayOfMonth) { 
         mYear = year; 
         mMonth = monthOfYear; 
         mDay = dayOfMonth; 
         updateDisplay(); 
        } 
       }; 

    // updates the date we display in the TextView 
    private void updateDisplay() { 
     mDateDisplay.setText(
      new StringBuilder() 
        // Month is 0 based so add 1 
        .append(mMonth + 1).append("-") 
        .append(mDay).append("-") 
        .append(mYear).append(" ")); 
    } 

    /** Called when the activity is first created. */ 
    private TextView mDateDisplay; 
     private Button mPickDate; 

     private int mYear; 
     private int mMonth; 
     private int mDay; 

     static final int DATE_DIALOG_ID = 0; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 

      // capture our View elements 
      mDateDisplay = (TextView) findViewById(R.id.dateDisplay); 
      mPickDate = (Button) findViewById(R.id.pickDate); 

      // add a click listener to the button 
      mPickDate.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View v) { 
        Log.d ("Debug", "YO MAN"); 
        showDialog(DATE_DIALOG_ID); 
       } 
      }); 

      // get the current date 
      final Calendar c = Calendar.getInstance(); 
      mYear = c.get(Calendar.YEAR); 
      mMonth = c.get(Calendar.MONTH); 
      mDay = c.get(Calendar.DAY_OF_MONTH); 

      // display the current date 
      updateDisplay(); 
     } 

} 

答えて

2

main.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
<TextView android:text="@string/date_text" 
    android:id="@+id/TextView01" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textSize="26px" 
    android:typeface="sans"></TextView> 
<Button android:text="@string/date_button" 
    android:id="@+id/Button01" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"></Button> 

<TextView android:text="@string/time_text" 
    android:id="@+id/TextView02" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textSize="26px" 
    android:typeface="sans"></TextView> 
<Button android:text="@string/time_button" 
    android:id="@+id/Button02" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"></Button> 
</LinearLayout> 

datepickerlayout.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 
<DatePicker 
    android:id="@+id/DatePicker01" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    ></DatePicker> 
</LinearLayout> 

PickerViewSample.java

package com.sai.samples.views; 

import java.util.Calendar; 

import android.app.Activity; 
import android.app.DatePickerDialog; 
import android.app.Dialog; 
import android.app.TimePickerDialog; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.DatePicker; 
import android.widget.TextView; 
import android.widget.TimePicker; 

public class PickerViewSample extends Activity { 

    static final int DATE_DIALOG_ID = 1; 
    static final int TIME_DIALOG_ID = 2; 
    private TextView dateDisplay; 
    private Button pickDate; 
    private int year, month, day; 
    private TextView timeDisplay; 
    private Button pickTime; 
    private int hours, min; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     dateDisplay = (TextView)findViewById(R.id.TextView01); 
     pickDate = (Button)findViewById(R.id.Button01); 

     pickDate.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       showDialog(DATE_DIALOG_ID); 
      } 

     }); 

     final Calendar cal = Calendar.getInstance(); 
     year = cal.get(Calendar.YEAR); 
     month = cal.get(Calendar.MONTH); 
     day = cal.get(Calendar.DAY_OF_MONTH); 

     updateDate(); 

     timeDisplay = (TextView)findViewById(R.id.TextView02); 
     pickTime = (Button)findViewById(R.id.Button02); 

     pickTime.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       showDialog(TIME_DIALOG_ID); 

      } 

     }); 

     hours = cal.get(Calendar.HOUR); 
     min = cal.get(Calendar.MINUTE); 

     updateTime(); 
    } 

    private void updateTime() { 
     timeDisplay.setText(new StringBuilder().append(hours).append(':') 
       .append(min)); 

    } 

    private void updateDate() { 
     dateDisplay.setText(new StringBuilder().append(day).append('-') 
       .append(month + 1).append('-').append(year)); 

    } 

    private DatePickerDialog.OnDateSetListener dateListener = 
     new DatePickerDialog.OnDateSetListener() { 

      @Override 
      public void onDateSet(DatePicker view, int yr, int monthOfYear, 
        int dayOfMonth) { 
       year = yr; 
       month = monthOfYear; 
       day = dayOfMonth; 
       updateDate(); 
      } 
    }; 

    private TimePickerDialog.OnTimeSetListener timeListener = 
     new TimePickerDialog.OnTimeSetListener() { 

      @Override 
      public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
       hours = hourOfDay; 
       min = minute; 
       updateTime(); 
      } 

    }; 
    protected Dialog onCreateDialog(int id){ 
     switch(id) { 
     case DATE_DIALOG_ID: 
      return new DatePickerDialog(this, dateListener, year, month, day); 
     case TIME_DIALOG_ID: 
      return new TimePickerDialog(this, timeListener, hours, min, false); 
     } 
     return null; 

    } 
} 
0

"であるように、" 私はあなたにこのpostの参照を与えている使用しました。それがあなたを助けることを願っています。

ありがとうございます。

0

私はあなたがこの部分が欠落していると思います:

@Overrideprotected Dialog onCreateDialog(int id) { 
    switch (id) { 
    case TIME_DIALOG_ID: 
     return new TimePickerDialog(this, 
       mTimeSetListener, mHour, mMinute, false); 
    } 
    return null; 
} 
関連する問題