2016-06-08 34 views
2

這是我的活動按鈕並不在我的活動工作

public class PetRegistrationActivity extends Activity { 


private Button born; 
private Button take; 
private Date date; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_pet_registration); 
    final Button btnSave = (Button) findViewById(R.id.save_info_button); 
    btnSave.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(final View arg0) { 

      performSave(); 

     } 
    }); 
} 

private void performSave() { 
    Pet p = new Pet(); 
    date = new Date(p,R.id.generalinfo_datepicker_dob, 
      R.id.generalinfo_datepicker_takeover, 
      this.getWindow().getDecorView().findViewById(android.R.id.content), 
      PetRegistrationActivity.this.getApplicationContext()); 
    born = (Button) findViewById(R.id.generalinfo_datepicker_dob); 
    take = (Button) findViewById(R.id.generalinfo_datepicker_takeover); 
    date.buildPicker(p, R.id.generalinfo_datepicker_dob, 
      R.id.generalinfo_datepicker_takeover); 
    date.buildPicker(p, R.id.generalinfo_datepicker_takeover, 
      R.id.generalinfo_datepicker_takeover); 
    DataHelper.getInstance().storeImage(this.selectedImg, 
      getApplicationContext(), String.valueOf(p.getId())); 

    final Intent resultIntent = new Intent(PetRegistrationActivity.this,MainActivity.class); 
    resultIntent.putExtra(Constants.NEW_PET, p); 
    setResult(Activity.RESULT_OK, resultIntent); 
    this.finish(); 

} 

}

這是班日期代碼:

public class Date { 

private final IPickerHelper picker; 
private final int id; 
private final int secondID; 
private final View v; 
private final Context ctx; 
private Button dateButton; 
private SimpleDateFormat fmt; 

public Date(IPickerHelper picker, int id, int secondID,View v,Context ctx){ 
    this.picker = picker; 
    this.id = id; 
    this.secondID = secondID; 
    this.v = v; 
    this.ctx = ctx; 

} 

public void buildPicker(final IPickerHelper pickerObj, 
         final int buttonId, final int secondButtonId) { 

    dateButton = (Button) v.findViewById(buttonId); 
    fmt = new SimpleDateFormat("dd/MM/yyyy", Locale.ITALIAN); 


    if (pickerObj.getStartDate() == null) { 
     final java.util.Date date = new java.util.Date(); 
     pickerObj.setStartDate(date); 
     pickerObj.setEndDate(date); 
     dateButton.setText(fmt.format(date)); 
    } else { 
     dateButton.setText(fmt.format(pickerObj.getStartDate())); 
     final Button endingButton = (Button) v.findViewById(secondButtonId); 
     endingButton.setText(fmt.format(pickerObj.getEndDate())); 
    } 

    dateButton.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(final View arg0) { 
      final java.util.Date value = new java.util.Date(); 
      final Calendar cal = Calendar.getInstance(); 
      cal.setTime(value); 
      if (secondButtonId == -1) { 
       setTimePickerDialog(pickerObj, buttonId); 
      } else { 
       setDatePickerDialog(pickerObj, buttonId, cal, fmt); 
      } 
     } 
    }); 
} 

private void setDatePickerDialog(final IPickerHelper pickerObj, final int buttonId, 
           final Calendar cal, final SimpleDateFormat fmt) { 

    new DatePickerDialog(ctx, new DatePickerDialog.OnDateSetListener() { 
     @Override 
     public void onDateSet(final DatePicker view, final int y, final int m, final int d) { 
      cal.set(Calendar.YEAR, y); 
      cal.set(Calendar.MONTH, m); 
      cal.set(Calendar.DAY_OF_MONTH, d); 

      final Button dateButton = (Button) v.findViewById(buttonId); 

      if (buttonId == R.id.generalinfo_datepicker_dob) { 
       pickerObj.setStartDate(cal.getTime()); 
       final Button endingButton = (Button) v.findViewById(R.id.generalinfo_datepicker_takeover); 
       endingButton.setText(fmt.format(cal.getTime())); 
      } else { 
       pickerObj.setEndDate(cal.getTime()); 
      } 
      dateButton.setText(fmt.format(cal.getTime())); 
     } 

    }, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal 
      .get(Calendar.DAY_OF_MONTH)).show(); 
} 

}

兩個按鈕(出生和拿)沒有做任何事情,當我點擊它們。

+0

你有過在調試代碼加強? – rrirower

+0

我的回答對你有幫助嗎? – Vucko

回答

2

把裏面onCreate如下:

born = (Button) findViewById(R.id.generalinfo_datepicker_dob); 
take = (Button) findViewById(R.id.generalinfo_datepicker_takeover); 
+0

謝謝,它的工作 –

+0

我的榮幸,快樂編碼:) –

1

移動這兩條線裏面onCreate,如@Bouterbiat已經注意到了。但是也不要忘記添加聽衆這兩個按鈕,這就是你沒有在你的代碼做了什麼:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_pet_registration); 
    final Button btnSave = (Button) findViewById(R.id.save_info_button); 
    born = (Button) findViewById(R.id.generalinfo_datepicker_dob); 
    take = (Button) findViewById(R.id.generalinfo_datepicker_takeover); 
    born.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(final View arg0) { 

     //Do whatever born does 
     } 
    }); 
    take.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(final View arg0) { 

     //Do whatever take does 
     } 
    });