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

안드로이드 많은 버튼들 배열로 처리해서 한 번에 처리하고 싶어요

0 추천

https://www.evernote.com/shard/s453/sh/c8118af4-68b4-99ec-4f66-a0c72e1ffe05/9a03516a30b8477177cfac9be2cb59bf

 

코드가 너무 길어 url 첨부합니다

에러는 안 뜨고 경고 표시로

1 Field 'numBtnIDs' is never used

2 Argument 'getActivity()' might be null

3 To get local formatting use `getDateInstance()`, `getDateTimeInstance()`, or `getTimeInstance()`, or use `new SimpleDateFormat(String template, Locale locale)` with for example `Locale.US` for ASCII dates.

4 Method invocation 'getApplicationContext' may produce 'NullPointerException'

이렇게 뜹니다 ㅜ

살려주세요제발제발요 (670 포인트) 님이 2022년 7월 18일 질문

1개의 답변

0 추천
 
채택된 답변

1.  무시하시거나 아래처럼 List를 사용해서 처리하세요. numButtons는 불필요하면 삭제하시구요.

public class Reservation extends Fragment{

    private List<int> numBtnIDs = Arrays.asList(
           R.id.seat_1, R.id.seat_2, ...
   );
 
   @Override
    public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
        for (int id : numBtnIDs) {
             Button button = requireView().findViewById(id);
             button.setOnClickListener(listener);
        }
    }
}

2. getActivity() 대신에 requireActivity()를 사용하세요.

3. Java 8 desugaring을 추가하여 (https://developer.android.com/studio/write/java8-support 참조) LocateDate를 사용하시거나, 경고처럼,getDateTimeInstance를 사용하시거나 , 아니면 경고를 무시하세요.

4. Toast는 해당 Fragment에서만 보여줄 거니까 context의 범위를  application으로 하는 getApplicationContext()를 사용하지마시고 requireContext()를 사용하세요.

 

spark (226,420 포인트) 님이 2022년 7월 18일 답변
살려주세요제발제발요님이 2022년 7월 24일 채택됨
...