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

안드로이드 스튜디오 다른 액티비티 버튼 호출

0 추천

현재 액티비티에서 버튼 클릭 이벤트로 리스트뷰에 아이템을 추가하려하는데 버튼 클릭 이벤트를 다른 액티비티에 있는 버튼으로 사용하려합니다.

static 변수로도 해보고 context로도 해봤는데 컴파일은 되는데 앱에서 버튼 클릭시 제대로 작동하지 않아서 어떻게 사용해야하나요?

public void show_ff(){
    di_ff.show();
    Button backBtn = di_ff.findViewById(R.id.ff_back);
    Button ff_pay = di_ff.findViewById(R.id.ff_add);
    
    ff_pay.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(getApplicationContext(), "장바구니에 담았습니다!", Toast.LENGTH_SHORT).show();
        }
    });
    backBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            di_ff.dismiss();
        }
    });
}
final ArrayList<String> items = new ArrayList<String>();
final ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_single_choice);

final ListView listView = (ListView) findViewById(R.id.payment);
listView.setAdapter(adapter);

.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        int cnt;
        cnt = adapter.getCount();

        items.add("r" + Integer.toString(cnt + 1));
        adapter.notifyDataSetChanged();

    }
});
ysl1224 (120 포인트) 님이 2022년 10월 25일 질문
차라리 프래그먼트를 쓰는게 좋을수도요

2개의 답변

0 추천
안드로이드에서는 그런 구조를 사용하지 않고 가능하더라도 절대 권장하지 않는 방식입니다. 한 화면이 다른 화면을 직접 참조하는 건 되더라도 사용하시면 안됩니다. 대신 액티비티의 경우는 Intent란걸 통해서 다른 화면에 님의 어떤 걸 원하는지의 '의도'나 데이터를 전달하셔야 합니다. 프레그먼트의 경우는 Arguments를 사용하구요.

Intent를 사용하는 건 아주 기본적인 사항이므로, 개발자 문서를 보고 사용법을 익히시기 바랍니다.

https://developer.android.com/reference/android/content/Intent

A화면에서 B화면에 원하는 걸 intent를 통해 넘기시고, B화면에서 입력이 완료되면 그 결과를 A화면에서 받도록 구성하시면 됩니다.

다른 액티비티로부터 결과를 받아오려면 아래 문서를 참조하세요.

https://developer.android.com/training/basics/intents/result

관련 예제도 개발잠문서나 구글을 찾아보시면 너무 많으니, 먼저 테스트 해보시고 안되는 부분을 올려보세요.
spark (227,830 포인트) 님이 2022년 10월 26일 답변
0 추천
상품 액티비티에서 장바구니에 아이템을 담고,

장바구니 액티비티에서 리스트로 구성된 항목들을 보기원하시는 거라면

공통 참조할 수있는 장바구니 아이템 리스트를 공유하고(viewModel),
장바구니 액티비티가 화면에 보여질 때(onResume) 리스트 아이템이 갱신되도록 하면 어떨까요 ?
익명 님이 2022년 10월 27일 답변
...