안드로이드 기능 구현의 단계별 설명
1. 버튼 클릭 이벤트 처리
가장 기본적인 기능 구현 중 하나로, 버튼을 클릭했을 때 특정 동작이 실행되도록 하는 방법입니다.
- 버튼 추가 (XML 파일에서)
-
코드 복사<Button android:id="@+id/myButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Click Me"/>
- xml
- 이벤트 처리 (Java/Kotlin 파일에서)
-
java코드 복사Button myButton = findViewById(R.id.myButton); myButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 버튼 클릭 시 실행할 코드 Toast.makeText(getApplicationContext(), "버튼이 클릭되었습니다!", Toast.LENGTH_SHORT).show(); } });
2. 화면 전환 (Activity 간 이동)
앱에서 화면 전환을 구현하려면 인텐트(Intent)를 사용하여 새로운 액티비티를 시작할 수 있습니다.
- 새로운 액티비티 생성
- 안드로이드 스튜디오에서 New > Activity > Empty Activity를 선택하여 새로운 액티비티를 생성합니다.
- 화면 전환 코드 (MainActivity에서 새 화면으로 이동)
-
java코드 복사Intent intent = new Intent(MainActivity.this, SecondActivity.class); startActivity(intent);
3. 데이터 전달 및 수신
Activity 간 데이터를 주고받을 때는 Intent의 Extra를 사용합니다.
- 데이터 보내기 (MainActivity)
-
java코드 복사Intent intent = new Intent(MainActivity.this, SecondActivity.class); intent.putExtra("message", "안녕하세요!"); startActivity(intent);
- 데이터 받기 (SecondActivity)
-
java코드 복사String message = getIntent().getStringExtra("message"); TextView textView = findViewById(R.id.textView); textView.setText(message);
4. 리스트뷰 및 리사이클러뷰 구현
데이터 리스트를 보여줄 때 자주 사용하는 UI 요소입니다.
- 리사이클러뷰 추가 (XML 파일)
-
xml코드 복사<androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="wrap_content"/>
- 리사이클러뷰 어댑터 설정
- 어댑터는 데이터와 리스트 아이템을 연결해주는 역할을 합니다.
java코드 복사public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> { private List<String> dataList; public MyAdapter(List<String> dataList) { this.dataList = dataList; } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item, parent, false); return new MyViewHolder(view); } @Override public void onBindViewHolder(MyViewHolder holder, int position) { holder.textView.setText(dataList.get(position)); } @Override public int getItemCount() { return dataList.size(); } public class MyViewHolder extends RecyclerView.ViewHolder { TextView textView; public MyViewHolder(View itemView) { super(itemView); textView = itemView.findViewById(R.id.textView); } } } - 리사이클러뷰 설정 (MainActivity)
-
java코드 복사RecyclerView recyclerView = findViewById(R.id.recyclerView); recyclerView.setLayoutManager(new LinearLayoutManager(this)); List<String> dataList = Arrays.asList("Item 1", "Item 2", "Item 3"); MyAdapter adapter = new MyAdapter(dataList); recyclerView.setAdapter(adapter);
5. 데이터 저장 및 로드 (SharedPreferences)
앱의 간단한 설정이나 작은 데이터를 저장할 때 유용합니다.
- 데이터 저장
-
java코드 복사SharedPreferences sharedPreferences = getSharedPreferences("MyPrefs", MODE_PRIVATE); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString("username", "Thinkbot"); editor.apply();
- 데이터 로드
-
java코드 복사SharedPreferences sharedPreferences = getSharedPreferences("MyPrefs", MODE_PRIVATE); String username = sharedPreferences.getString("username", "default");
6. 네트워크 요청 (Retrofit을 사용한 REST API 통신)
서버와 통신하여 데이터를 주고받기 위해 Retrofit 라이브러리를 사용할 수 있습니다.
- Retrofit 설정
- build.gradle에 Retrofit 의존성을 추가합니다.
groovy코드 복사implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0' - API 인터페이스 정의
-
java코드 복사public interface ApiService { @GET("users") Call<List<User>> getUsers(); }
- Retrofit 인스턴스 생성 및 사용
-
java코드 복사Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.example.com/") .addConverterFactory(GsonConverterFactory.create()) .build(); ApiService apiService = retrofit.create(ApiService.class); Call<List<User>> call = apiService.getUsers(); call.enqueue(new Callback<List<User>>() { @Override public void onResponse(Call<List<User>> call, Response<List<User>> response) { if (response.isSuccessful()) { List<User> users = response.body(); // 사용자 목록 처리 } } @Override public void onFailure(Call<List<User>> call, Throwable t) { // 오류 처리 } });
7. 권한 요청 (예: 카메라, 위치 권한)
안드로이드 6.0 이상에서는 앱에서 특정 권한을 사용하려면 사용자에게 직접 권한을 요청해야 합니다.
- 권한 요청 코드 (Java)
-
java코드 복사if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, 100); }
- 권한 결과 처리
-
java코드 복사@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { if (requestCode == 100) { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { // 권한이 허용됨 } else { // 권한이 거부됨 } } }
'안드로이드스튜디오' 카테고리의 다른 글
안드로이드 주요 UI 요소 및 활용 방법 (1) | 2024.09.15 |
---|---|
안드로이드 스튜디오 앱개발 단계 (3) | 2024.09.15 |
안드로이드 스튜디오 설치 및 가상 에뮬레이트 , 앱실행하기 (0) | 2024.09.15 |