2017-07-08 67 views
0

的onClickListener似乎不工作时,我点击应用程序中的文本不显示TimePickerDialog或任何东西。应该我使用TouchListener?有什么问题?请帮忙提前--Emanuel感谢。的TextView onClcikclistener似乎不是这个TextView的工作

下面是代码:

hora_text.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     hora_button.setOnClickListener(
      new Button.OnClickListener() { 
       public void onClick (View v){ 
        Calendar cal = Calendar.getInstance(); 
        int hora = cal.get(Calendar.HOUR); 
        int minutos = cal.get(Calendar.MINUTE); 
        TimePickerDialog mTimePicker = new TimePickerDialog(getActivity(),TimePickerDialog.THEME_HOLO_LIGHT,hourSetListener,hora,minutos,true); 
        mTimePicker.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 
        mTimePicker.show(); 
       } 
      }); 

     hourSetListener = new TimePickerDialog.OnTimeSetListener() { 
      @Override 
      public void onTimeSet(TimePicker timePicker, int hora, int minutos) { 
       hora_text.setText(hora+":"+minutos); 
      } 
     }; 
    } 
}); 

date_text.setOnClickListener(
    new View.OnClickListener() { 
     public void onClick(View v) { 
      date_button.setOnClickListener(
        new View.OnClickListener() { 
         public void onClick(View v) { 
          Calendar cal = Calendar.getInstance(); 
          int year = cal.get(Calendar.YEAR); 
          int month = cal.get(Calendar.MONTH); 
          int day = cal.get(Calendar.DAY_OF_MONTH); 
          DatePickerDialog date_dialog = new DatePickerDialog(getActivity(),        
              android.R.style.Theme_Holo_Light_Dialog_MinWidth, 
              dateSetListener, 
              year, month, day); 
          date_dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 
          date_dialog.show(); 
         }; 
        } 
      ); 

      dateSetListener = new DatePickerDialog.OnDateSetListener() { 
       @Override 
       public void onDateSet(DatePicker datePicker, int year, int month, int day) { 
        month=month + 1; 
        String dt = day + "-" + month + "-" + year; 
        SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); 
        try { 
         sdf.parse(dt); 
         date_text.setText(dt); 
        } catch (ParseException e) { 
         e.printStackTrace(); 
        } 
       } 
      }; 
     } 
    } 
); 
+1

您在TextViews的点击侦听器中所做的工作就是将侦听器分配给您的按钮。看着你发布的代码,你可能会看到,如果你按文本视图'hora_text'您TimePickers出现,然后按事后'hora_button'。 – PPartisan

回答

1

就像@PPartisan在评论中提到的,你没有真正设置TextView的点击与功能,因为你是一个按钮中设置的功能来代替。所以在你的情况下,它应该是:

hora_text.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     Calendar cal = Calendar.getInstance(); 
     int hora = cal.get(Calendar.HOUR); 
     int minutos = cal.get(Calendar.MINUTE); 
     TimePickerDialog mTimePicker = new TimePickerDialog(getActivity(),TimePickerDialog.THEME_HOLO_LIGHT,hourSetListener,hora,minutos,true); 
     mTimePicker.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 
     mTimePicker.show(); 
    } 
);