0
以下は私のコードです。私のAPpによれば、それぞれのボタンをクリックすることで、DAteとToDAteから入ることができます。しかし、datepickerダイアログから日付を選択した後、私は日の間にdiffrenceを見つける必要があります。そして、総コストを計算します。しかし、私のFromDateとToDateが同じ日付を取るので、コード全体に何か問題があります。そのため、総コストはゼロのみとして表示されます。私はAndroidが初めてです。この問題を解決するために私を助けてください。日の差分を計算し、それに応じて出力を表示するDatepickerとCalendarの例
public class MainActivity extends AppCompatActivity {
TextView tv_rentcarheading, tv_costresult;
Button btndateFrom, btndateTo, btncalculate;
int CurrentYear1, CurrentMonth1, CurrentDay1, CurrentYear2, CurrentMonth2, CurrentDay2;
final int rent = 150;
static final int dialog_id1 = 0, dialog_id2 = 0;
long n, totalcost;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv_rentcarheading = (TextView) findViewById(R.id.tv_rentcar);
tv_costresult = (TextView) findViewById(R.id.tv_result);
btndateFrom = (Button) findViewById(R.id.btn_fromdate);
btndateTo = (Button) findViewById(R.id.btn_todate);
btncalculate = (Button) findViewById(R.id.btn_result);
tv_costresult.setVisibility(View.INVISIBLE);
Calendar calendar1 = Calendar.getInstance();
CurrentYear1 = calendar1.get(Calendar.YEAR);
CurrentMonth1 = calendar1.get(Calendar.MONTH);
CurrentDay1 = calendar1.get(Calendar.DAY_OF_MONTH);
Calendar calendar2 = Calendar.getInstance();
CurrentYear2 = calendar2.get(Calendar.YEAR);
CurrentMonth2 = calendar2.get(Calendar.MONTH);
CurrentDay2 = calendar2.get(Calendar.DAY_OF_MONTH);
showDialogOnButtonClick();
calendar1.set(CurrentYear1, CurrentMonth1, CurrentDay1);
calendar2.set(CurrentYear2, CurrentMonth2, CurrentDay2);
n = (calendar2.getTimeInMillis() - calendar1.getTimeInMillis());
totalcost = n * rent;
btncalculate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
totalcost = n * rent;
tv_costresult.setText("The Cost of car from " +CurrentMonth1+"/"+CurrentDay1+"/"+CurrentYear1+" to "+CurrentMonth1+"/"+CurrentDay1+"/"+CurrentYear1+" is "+totalcost);
tv_costresult.setVisibility(View.VISIBLE);
}
});
}
public void showDialogOnButtonClick()
{
btndateFrom.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showDialog(dialog_id1);
}
});
btndateTo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showDialog(dialog_id2);
}
});
}
@Override
protected Dialog onCreateDialog(int id)
{
if(id == dialog_id1)
return new DatePickerDialog(MainActivity.this, setDateListener1, CurrentYear1, CurrentMonth1, CurrentDay1);
if(id == dialog_id2)
return new DatePickerDialog(MainActivity.this, setDateListener2, CurrentYear2, CurrentMonth2, CurrentDay2);
else
return null;
}
private DatePickerDialog.OnDateSetListener setDateListener1 = new DatePickerDialog.OnDateSetListener()
{
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth)
{
CurrentYear1 = year;
CurrentMonth1 = month + 1;
CurrentDay1 = dayOfMonth;
Toast.makeText(MainActivity.this, "From Date is " + CurrentMonth1 +"/" + CurrentDay1+ "/" + CurrentYear1, Toast.LENGTH_LONG).show();
}
};
private DatePickerDialog.OnDateSetListener setDateListener2 = new DatePickerDialog.OnDateSetListener()
{
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth)
{
CurrentYear2 = year;
CurrentMonth2 = month +1;
CurrentDay2 = dayOfMonth;
Toast.makeText(MainActivity.this, "From Date is " + CurrentMonth2 +"/" + CurrentDay2+ "/" + CurrentYear2, Toast.LENGTH_LONG).show();
}
};
}
@RamMalhotraの内側に
onCreate
からのコードのこの部分はあなたのための私の答えは役に立ちましたか?それを試しましたか? – Marat