質問編集履歴

1

budgetTrackerViewModelのnullpointerを解決

2022/04/20 13:42

投稿

Yakusugi
Yakusugi

スコア123

test CHANGED
File without changes
test CHANGED
@@ -125,25 +125,6 @@
125
125
  final int month = calendar.get(Calendar.MONTH);
126
126
  final int day = calendar.get(Calendar.DAY_OF_MONTH);
127
127
 
128
- Intent shopFragmentGetIntent = getIntent();
129
- Bundle shopFragmentGetIntentBundle = shopFragmentGetIntent.getExtras();
130
- if (shopFragmentGetIntentBundle != null) {
131
- shopFragmentIntentId = getIntent().getIntExtra(ShopFragment.SHOP_FRAGMENT_ID, 0);
132
- // shopFragmentIntentId = shopFragmentGetIntentBundle.getInt(ShopFragment.SHOP_FRAGMENT_ID);
133
- Log.d("TAG", "shopFragment: " + shopFragmentIntentId);
134
- budgetTrackerViewModel.getBudgetTrackerId(shopFragmentIntentId).observe(this, new Observer<BudgetTracker>() {
135
- @Override
136
- public void onChanged(BudgetTracker budgetTracker) {
137
- enterDate.setText(budgetTracker.getDate());
138
- enterStoreName.setText(budgetTracker.getStoreName());
139
- enterProductName.setText(budgetTracker.getProductName());
140
- enterProductType.setText(budgetTracker.getProductType());
141
- enterPrice.setText(budgetTracker.getPrice());
142
- }
143
- });
144
- isEdit = true;
145
- }
146
-
147
128
  enterDate.setOnClickListener(new View.OnClickListener() {
148
129
  @Override
149
130
  public void onClick(View view) {
@@ -164,6 +145,25 @@
164
145
  .getApplication())
165
146
  .create(BudgetTrackerViewModel.class);
166
147
 
148
+ Intent shopFragmentGetIntent = getIntent();
149
+ Bundle shopFragmentGetIntentBundle = shopFragmentGetIntent.getExtras();
150
+ if (shopFragmentGetIntentBundle != null) {
151
+ shopFragmentIntentId = getIntent().getIntExtra(ShopFragment.SHOP_FRAGMENT_ID, 0);
152
+ // shopFragmentIntentId = shopFragmentGetIntentBundle.getInt(ShopFragment.SHOP_FRAGMENT_ID);
153
+ Log.d("TAG", "shopFragment: " + shopFragmentIntentId);
154
+ budgetTrackerViewModel.getBudgetTrackerId(shopFragmentIntentId).observe(this, new Observer<BudgetTracker>() {
155
+ @Override
156
+ public void onChanged(BudgetTracker budgetTracker) {
157
+ enterDate.setText(budgetTracker.getDate());
158
+ enterStoreName.setText(budgetTracker.getStoreName());
159
+ enterProductName.setText(budgetTracker.getProductName());
160
+ enterProductType.setText(budgetTracker.getProductType());
161
+ enterPrice.setText(String.valueOf(budgetTracker.getPrice()));
162
+ }
163
+ });
164
+ isEdit = true;
165
+ }
166
+
167
167
  saveInfoButton.setOnClickListener(view -> {
168
168
  Intent replyIntent = new Intent();
169
169
 
@@ -181,7 +181,9 @@
181
181
  BudgetTracker budgetTracker = new BudgetTracker(date, storeName, productName, productType, price);
182
182
  budgetTrackerViewModel.insert(budgetTracker);
183
183
 
184
+
184
185
  }
186
+
185
187
  finish();
186
188
 
187
189
  });