이거로 너무 고생했어요 (ㅋㅋ) 너무 안 맞는 자료가 많아서.. 스택 오버플로우에서 한참을 헤멨었던 것 같아요.
Android 10.0버전 작동 확인했고, Min SDK(Api Level)은 21로 작업했습니다
private void sendMMSIntent(String message) {
Uri uri = Uri.parse("sms: " + phone);
Intent sendIntent = new Intent(Intent.ACTION_SENDTO, uri);
sendIntent.putExtra("subject", "MMS TEST");
sendIntent.putExtra("sms_body", message);
startActivity(sendIntent);
finish();
}
저같은 경우는 이 앱을 개발할 때 사용하는 직업의 근무형태와 조작능력을 고려해 (가끔 인터넷이 안된다고 하셔서)인터넷에 구애받지 않도록 만들고 싶어서 일부러 데이터베이스를 이용하지 않고, 조금 결합도를 늘리더라도 SharedPreference와 static 함수를 이용해서 했어요. 그래서 phone 변수의 경우 sharedpreference로, 메세지 값은 버튼을 누를때 stringbuilder을 통해 앞서 ViewHolder의 값을 static 변수에 넣도록 하여 그 값을 for문을 돌려 append 하는 방식을 택했습니다.
입력했을 때 총계가 0일 경우는 문자가 날아가지 못하게, intent로 이동하지 못하도록 return으로 바로 함수를 종료시킵니다.
(Listener 부분)
- SelectProductActivity. java
더보기
private void setListener() {
textViewNextButton.setOnClickListener(v -> {
SharedPreferences sharedPreferences = SelectProductActivity.this.getSharedPreferences(SharedPreferenceUtil.SHARED_PREFERENCES_KEY, MODE_PRIVATE);
StringBuilder sb = new StringBuilder();
sb.append("안녕하세요 제품 판매자 입니다. \n");
sb.append("이번 달 명세서입니다. \n");
int productAllCost = 0;
DebugLogUtil.logD(TAG, "textViewNextButton 클릭");
for (int i = 0; i < productAllCostList.size(); i++) {
if(productCount.get(i)!=0) {
sb.append(Constant.productList.get(i) + " " + productCount.get(i) + "개, " +productAllCostList.get(i)+"\n");
productAllCost += productAllCostList.get(i);
}
}
if(productAllCost==0){
Toast.makeText(this, "입력된 값이 없습니다", Toast.LENGTH_SHORT).show();
sb.delete(0, sb.length());
return;
}
sb.append("총 "+productAllCost+"원 입니다. \n");
sb.append("계좌는 "+sharedPreferences.getString("bank","")+" "+sharedPreferences.getString("account","")+ " 입니다. \n");
sb.append("감사합니다.");
sendMMSIntent(sb.toString());
});
}
값을 넣는 부분에서는 값을 단순히 화살표로 조절하거나, 입력만 하는 방식이 아니라, 양 쪽 다 가능한 방식을 택했어요.
(값을 조정하는 Listener 부분)
- SelectProductViewHolder. java
더보기
private void setListener() {
//product1
imageViewProductPlus.setOnClickListener(v -> {
DebugLogUtil.logD(TAG, "textViewProduct1Plus 클릭");
String[] stringProduct1OneCost = textViewProductOneCost.getText().toString().split("원");
int product1OneCost = Integer.valueOf(stringProduct1OneCost[0]);
productCount += 1;
editTextProductCount.setText(productCount + "");
textViewProductAllCost.setText((product1OneCost * productCount) + "원");
if (productCount != 0) {
SelectProductActivity.productCount.set(position, productCount);
SelectProductActivity.productAllCostList.set(position, (product1OneCost * productCount));
}
});
imageViewProductMinus.setOnClickListener(v -> {
DebugLogUtil.logD(TAG, "textViewProduct1Minus 클릭");
String[] stringProduct1OneCost = textViewProductOneCost.getText().toString().split("원");
int product1OneCost = Integer.valueOf(stringProduct1OneCost[0]);
if (productCount < 1) {
productCount = 0;
} else {
productCount -= 1;
}
editTextProductCount.setText(productCount + "");
textViewProductAllCost.setText((product1OneCost * productCount) + "원");
if (productCount != 0) {
SelectProductActivity.productCount.set(position, productCount);
SelectProductActivity.productAllCostList.set(position, (product1OneCost * productCount));
}
});
editTextProductCount.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (editTextProductCount.getText().toString().equals("")) {
productCount = 0;
} else {
productCount = Integer.valueOf(editTextProductCount.getText().toString());
}
String[] stringProduct1OneCost = textViewProductOneCost.getText().toString().split("원");
int product1OneCost = Integer.valueOf(stringProduct1OneCost[0]);
textViewProductAllCost.setText((product1OneCost * productCount) + "원");
}
@Override
public void afterTextChanged(Editable s) {
}
});
}
반응형
'Project > 안드로이드 프로젝트(HYPersonnalApp)' 카테고리의 다른 글
HYPersonnalProject 완료되었습니다~ (0) | 2020.11.06 |
---|---|
Android Studio, JAVA] 부여한 퍼미션(SMS, 전화번호부)들로 목록 가져오기 (3) | 2020.11.05 |
HYPersonnalApp Project 잡담 1. intent를 이용한 mms 문자 보내기 - 인텐트 setType에서 막혀있어요 (0) | 2020.10.26 |
[Android Studio/Java] SMS, PhoneState, Contact Read Permission 부여하기(MainActivity) (0) | 2020.10.20 |
HYPersonnalApp Project 0. 개요. (0) | 2020.10.20 |