마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

고수님들 도와주세요~~ ㅠ

0 추천

안드로이드를 공부하면서 심심풀이로 지금까지 공부한 (공부는 현재진행중 입니다.) 내용을 바탕으로 어플을 하나 만들고 있는데 구글링으로는 도저히 제가 원하는 답을 얻지 못하여 이렇게 여러 고수님들께 도움을 요청 드립니다.

            <<    액티비티 (1)  >>

 

위 액티비티(1) 사진을 보시면 '군만두' 란에 수량은 '2' 가격은 도합 '4000원' 이 찍혀있습니다.

사진으로는 색상탓에 잘 보이지는 않지만 밑에 두 버튼중 작은 버튼이 "주문하기" 라는 버튼이며,

그 버튼을 누르면 다음 액티비티로 넘어가면서 저 메뉴(군만두)와 저 당시 찍혀있는 수량과 전체금액의 정보도

같이 넘어가게 만들고자 하고있습니다. 그래서 다음 액티비티로 넘어가면.... 이렇게 되어집니다.

 

           <<   액티비티(2)   >>

 

여기서 액티비티(1)의 메뉴이름과 정보를 액티비티(2)의 텍스트뷰에 띄우고 싶습니다.

사실 액티비티(1)보다 이전 액티비티들도 있습니다.

그래서 버튼을 누르고 인텐트를 넘기면서 액티비티간의 이동은 해오고 있었습니다.

인텐트를 넘길때 putExtra를 사용하여 정보도 넘기는건 할 수 있습니다.

 

       ex)

           Intent.putExtra("번호", 12345);

           Intent.putExtra("메시지", "이것이 메시지의 vaule입니다.");

 

헌데 제가 막힌 부분은

구글에서 인텐트 관련된 정보들을 찾아봐도 위의 예제처럼 넘겨지는 value는 저렇게 직접 입력이 되어진 걸 넘기는 것 뿐 이였습니다. (editText 제외..  제외 이유는 editText는 변동성이 있는 값이긴 하나 그 역시 

직접 타이핑을 해야 하는 것 이기에 제가 원하는 수량의 변화를 넘기기에는 적합해 보이지 않았습니다.

액티비티(1) 사진의 수량과 가격은 textView로 작성하였습니다. 수량 좌우의 "+" , "-" 버튼을 이용하여 수량을 조정합니다. 그리고 그 조정된 수량값과 가격값을 다음 액티비티로 넘기고 싶습니다.)

 

제가 원하는 결과물은 액티비티(1)의 변동성이 있는 정보를 액티비티(2)로 전달하면서

액티비티(2)의 텍스트뷰 에 이렇게 띄우고 싶습니다.

(메뉴이름) + " 를 " + (수량) + " 개 주문하셔서 " + (금액) + " 원 입니다."


이제 본격적인 질문 올리겠습니다.

(제가 안드로이드를 시작한지 2주정도 되어서 아직 배움의 깊이가 얕습니다..)


질문 : 제가 원하는 저 방식을 인텐트를 사용하여 해결할 수 있을까요?

혹, 인텐트가 아닌 다른걸 이용해야한다면 무엇을 이용하면 좋을지 이름만이라도 알려주시면

열심히 공부하고 오겠습니다.


두서없이 작성한 질문글을 끝까지 읽어주셔서 감사합니다.

 

포부만세 (120 포인트) 님이 2023년 4월 6일 질문

1개의 답변

0 추천
DB 사용하지 않으시고 단순히 정보값들을 전달하는 거라면 인텐트 사용해서 전달하시면 됩니다

https://lktprogrammer.tistory.com/150   이  링크 참조하시면 되지 않을까 싶네요
비뢰광 (7,400 포인트) 님이 2023년 4월 6일 답변
소중한 답글 감사합니다^^
혹, 저 정도의 value들(수량,가격)을 넘기는데도 DB를 사용해야 하나요?
고객정보나 기타 고정된 정보(혹은, 변동성이 적은 정보) 같은 경우는
DB를 사용하는게 이해가 가는데,
수시로 변동성이 있는 정보들도 DB로 작업하는게 좋은가요?
위에 나온 정도의 정보는 intent를 사용하셔서 전달하시면 됩니다. 다만 수량, 가격, 금액 이런 식으로 개별 항목을 넘기기 보다는 화면에서 넘겨야할 정보를 담을 클래스를 하나 만드시고 serializable이나 prcelable 타입으로 만든 디음에 넘기시면 됩니다. 개인적으로는 serializable타입이면 될 것 같구요.
public class OderItem implements Serializable {
  private String menuId
  private String menu Name
  private int quantity
  private double price
  private double amount
}

같은 형태로 하시면 될 듯합니다. 모발폰이라 코드를 제대로 적을 수가 없으니 양해바래요.
만드는 기획에 따라 db도 사용할 수 있다는 뜻이었을 뿐 db를 사용해야 좋다는 이야기는 아니었습니다
장바구니 개념을 따르는 경우 이에 해당되겠죠
이 분 말씀이 적절합니다. 그리고 연습 단게에서는 Intent로 충분할 수 있지만, 실제 사용되는 앱이라면 사용자가 입력한 데이터를 디바이스 로테이션에 살아남게 하거나, 백그라운드에 죽었을 경우, 갑자기 앱을 빠져나간 경우, 오프라인 처리 등에 대비하기 위해 DB를 사용하는 걸 적극적으로 고려하게 됩니다. 특히나 쇼핑 앱(주문 앱도 비슷)의 경우에는 그런 요구가 많을 수 밖에 없습니다.
비뢰광님 감사합니다.   많은 도움 받아서 드디어 해결했습니다.^^
spark님 감사합니다^^
많은 배움 얻어 갔습니다.
답글이 늦어 죄송합니다ㅜ
...