質問編集履歴

2

エラーメッセージ画面のスクショ追加

2021/05/04 21:54

投稿

Yakusugi
Yakusugi

スコア123

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- Android Studioで家計簿アプリを作成しています。
1
+ ![イメージ説明](2bc3d3cb8823448a73abf38153de7dfd.png)Android Studioで家計簿アプリを作成しています。
2
2
 
3
3
  activity_main.xmlから日付の値を受け取り、dtoから日付(Date型)の値をMainActivityに渡したいのですが、MainActivityの47行目での「txtDate.getText().toString()」の部分で下記エラーが発生してしまいました。
4
4
 

1

MainActivity, BudgetRackerDto変更

2021/05/04 21:54

投稿

Yakusugi
Yakusugi

スコア123

test CHANGED
File without changes
test CHANGED
@@ -32,12 +32,16 @@
32
32
 
33
33
 
34
34
 
35
+ import androidx.annotation.RequiresApi;
36
+
35
37
  import androidx.appcompat.app.AppCompatActivity;
36
38
 
37
39
  import androidx.recyclerview.widget.RecyclerView;
38
40
 
39
41
 
40
42
 
43
+ import android.os.Build;
44
+
41
45
  import android.os.Bundle;
42
46
 
43
47
  import android.view.View;
@@ -46,14 +50,24 @@
46
50
 
47
51
  import android.widget.EditText;
48
52
 
53
+ import android.widget.Toast;
54
+
49
55
 
50
56
 
51
57
  import java.text.DateFormat;
52
58
 
59
+ import java.text.ParseException;
60
+
53
61
  import java.text.SimpleDateFormat;
54
62
 
55
63
  import java.time.LocalDate;
56
64
 
65
+ import java.time.format.DateTimeFormatter;
66
+
67
+ import java.util.Date;
68
+
69
+ import java.util.Locale;
70
+
57
71
 
58
72
 
59
73
  public class MainActivity extends AppCompatActivity {
@@ -110,20 +124,46 @@
110
124
 
111
125
  btnAdd.setOnClickListener(new View.OnClickListener() {
112
126
 
127
+
128
+
113
129
  @Override
114
130
 
115
131
  public void onClick(View v) {
116
132
 
117
133
  BudgetTrackerDto budgetTrackerDto;
118
134
 
119
-
135
+ DateFormat txtDateFormat = new SimpleDateFormat("MMMM d, yyyy", Locale.ENGLISH);
136
+
137
+ Date txtDateStr = null;
120
138
 
121
139
  try {
122
140
 
123
- budgetTrackerDto = new BudgetTrackerDto(txtDate.getText().toString(), txtStoreName.getText().toString(), txtProductName.getText().toString(),txtType.getText().toString(), Integer.parseInt(txtPrice.getText().toString()));
141
+ txtDateStr = txtDateFormat.parse(String.valueOf(txtDate));
142
+
143
+ } catch (ParseException e) {
144
+
145
+ e.printStackTrace();
124
146
 
125
147
  }
126
148
 
149
+
150
+
151
+
152
+
153
+ try {
154
+
155
+ budgetTrackerDto = new BudgetTrackerDto(txtDateStr.getTime(), txtStoreName.getText().toString(), txtProductName.getText().toString(),txtType.getText().toString(), Integer.parseInt(txtPrice.getText().toString()));
156
+
157
+ Toast.makeText(MainActivity.this, budgetTrackerDto.toString(), Toast.LENGTH_SHORT).show();
158
+
159
+ } catch (Exception e) {
160
+
161
+ Toast.makeText(MainActivity.this, "Error adding date", Toast.LENGTH_SHORT).show();
162
+
163
+
164
+
165
+ }
166
+
127
167
  //作成途中
128
168
 
129
169
 
@@ -168,7 +208,7 @@
168
208
 
169
209
 
170
210
 
171
- public BudgetTrackerDto (Date date, String storeName, String productName, String productType, int price) {
211
+ public BudgetTrackerDto (long date, String storeName, String productName, String productType, int price) {
172
212
 
173
213
  this.date = date;
174
214
 
@@ -344,8 +384,6 @@
344
384
 
345
385
  }
346
386
 
347
-
348
-
349
387
  ```
350
388
 
351
389