목록Android (44)
군침이 싹 도는 코딩
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b7bwgr/btrXWxGmuZD/lvbzm06WK1SD3Tmc8uDZUk/img.png)
# 해당 리사이클러뷰에서 하나의 열을 누르면 수정할수있게 하는 액티비티를 열어주는 코드를 작성해보자 # 먼저 해당 열을 만들어준 xml 파일로가서 cardView에 id값을 준다 public class viewHolder extends RecyclerView.ViewHolder{ TextView txtName; TextView txtPhone; ImageView imgDelete; CardView cardView; public viewHolder(@NonNull View itemView) { super(itemView); txtName = itemView.findViewById(R.id.txtName); txtPhone = itemView.findViewById(R.id.txtPhone); imgDele..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ULeOq/btrXWKr7qPr/GnI1KGQzpxJqO8cdeqjiDk/img.png)
package com.mugoori.contactapp; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import com.mugoori.contactapp.adapter.ContactAdapter; import com.mugoori.contactapp.data.Database..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bmOBf8/btrX0KYZP5q/9c295Ct8i7NdPAUL6rUAW1/img.png)
package com.mugoori.contactapp.adapter; // 1. RecyclerView.Adapter 를 상속받는다 // 2. 상속받은 클래스가 abstract 이므로 unimplemented method override 한다 import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ocitY/btrXVj9StaK/Od31dXUsgjZ6jBEOEZBg51/img.png)
# res 우클릭 > New > Vector Asset # 클립 아트를 누르고 필요한 아이콘을 검색하거나 스크롤을 내려 찾은다음 OK 를 누르고 원하는 색깔과 사이즈로 편집한다 # 이미지뷰를 넣을때보면 추가되있는것을 확인할 수 있다
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/mlqUI/btrXXx69wXe/3u3SZ61pCpLWZwWgHtJFSk/img.png)
# SQLiteOpenHelper 를 상속받으면 메소드를 구현하라고 뜬다 즉 이 클래스는 추상 클래스임을 알 수 있다 # 임플리먼트 메소드를 눌러 두개의 메소드를 받아온다 # 두개의 메소드를 받아왔음에도 에러가 뜬다 이유는 생성자가 또 있기때문이다 # 생성자 또한 3가지중에 하나를 받아온다 package com.mugoori.contactapp.model; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import androidx.annotation.Nullable; public class sss extends SQLiteO..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/rjV38/btrXXx0kyTu/iNbAlLv3lDeFAo2HwXKzT0/img.png)
String email= editEmail.getText().toString().trim(); Pattern pattern = android.util.Patterns.EMAIL_ADDRESS; if (pattern.matcher(email).matches() == false){ Toast.makeText(MainActivity.this, "이메일을 바르게 입력하세요", Toast.LENGTH_SHORT).show(); return; } # 패턴을 이용해서 이메일 형식을 체크할 수 있다 pattern EMAIL_ADDRESS 는 값을 boolean으로 리턴하기때문에 조건문을 사용해서 true / false 로 구분해주면 된다
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bYvOdy/btrXWKMqbVm/n32MagRsgC1rxpTfTGn5Mk/img.png)
SharedPreferences sp = getSharedPreferences(SP_NAME,MODE_PRIVATE); SharedPreferences.Editor editor = sp.edit(); editor.putString("sentence",sentence); editor.putInt("hello",100); editor.apply(); # 쉐어드 프리페어런스를 사용해서 임시저장을 할수 있다 이것으로 저장을하면 앱을 삭제하면 삭제되기때문에 임시저장이다 사용법은 쉐어드 프리페어런스를 만든다 파라미터는 첫번째 파라미터에 저장소 이름 두번째 파라미터에는 이 앱에서만 쓸수 있도록 프라이빗으로 설정한다 그 뒤 에디터를 만들어준다 만들어준 에디터로 put데이터타입( 키값, 저장될데이터) 를 쓴다 마지막으로..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cNxZpg/btrXXgxB9A0/ijEUhEvoosekeGa4Es68r0/img.png)
public class MainActivity extends AppCompatActivity { Button button; EditText editName; EditText editAge; TextView txtAge; // 내가 실행한 액티비티로부터 데이터를 다시 받아오는 경우에 작성하는 코드 ActivityResultLauncher launcher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @Override public void onActivityResult(ActivityResult result) { if (result.getResultCod..