记账本
今日完成最后的部分
新建一个Activity,命名为new_cost
在layout中新生成的xml文件中编译:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center"> <EditText android:id="@+id/et_cost_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="4dp" android:hint="Cost Title" android:textColor="#ffbd27" /> <EditText android:id="@+id/et_cost_money" android:inputType="number|numberDecimal" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="4dp" android:hint="Cost Money" android:textColor="#ffbd27" /> <DatePicker android:id="@+id/dp_cost_date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="8dp" android:datePickerMode="spinner" android:calendarViewShown="false" /> <Button android:onClick="okButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="确认" android:textSize="20dp" android:textColor="#333333" android:background="#ffbd27" android:layout_marginLeft="40dp" android:layout_marginRight="40dp" /> </LinearLayout>
new_cost.java中:
package com.example.myaccountapp;
import androidx.appcompat.app.AppCompatActivity;
import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.Toast;
import java.text.SimpleDateFormat;
import java.util.Date;
public class new_cost extends AppCompatActivity {
private DBHelper helper;
private EditText et_cost_title;
private EditText et_cost_money;
private DatePicker dp_cost_date;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new_cost);
initView();
}
private void initView() {
helper = new DBHelper(new_cost.this);
et_cost_title = findViewById(R.id.et_cost_title);
et_cost_money = findViewById(R.id.et_cost_money);
dp_cost_date = findViewById(R.id.dp_cost_date);
}
public void okButton(View view) {
String titleStr = et_cost_title.getText().toString().trim();
String moneyStr = et_cost_money.getText().toString().trim();
String dateStr = dp_cost_date.getYear() + "-" + (dp_cost_date.getMonth() + 1) + "-"
+ dp_cost_date.getDayOfMonth();//这里getMonth会比当前月份少一个月,所以要+1
if ("".equals(moneyStr)) {//可以不填写Title但是不能不填金额
Toast toast = Toast.makeText(this, "请填写金额", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
} else {
SQLiteDatabase db = helper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("Title", titleStr);
values.put("Money", moneyStr);
values.put("Date", dateStr);
long account = db.insert("account", null, values);
if (account > 0) {
Toast toast = Toast.makeText(this, "保存成功", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
setResult(1);
finish();
} else {
Toast toast = Toast.makeText(this, "请重试", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
db.close();
}
setResult(1);
finish();
}
}
}
本次的内容到此就完成了,主要在调试的部分比较费工夫,有的报错找不到问题的原因时很难解决。

浙公网安备 33010602011771号