1.[형용사] 강한 관심[흥미]을 보이는, 몰두[열중]하는
2.[형용사][격식](특히 남에게 해가 될 일을) 꾀하는[작정한]
3.[명사][격식 또는 법률]의도 (=intention )
4.[명사][U] 의지, 의향(intention); 목적, 계획
5.[명사]의미, 취지
-전화번호부 앱에서 리사이클러뷰의 아이템을 터치 했을 때 디테일 액티비티로 전환하고 데이터 전달하는 것 까지 작업을 하겠습니다.
-전달할 데이터는 이름과 전화번호 입니다.
activity_detail.xml
-ImageView 는 프로필사진을 넣을 수 있게 만들 예정이서 미리 추가했습니다.
-ImageVIew 에 src에 이미지 경로를 입력하면 그 이미지를 ImageView 에 띄울 수 있습니다.
-drawable 폴더에서 우클릭 → new → Vecter Asset. 안드로이드에서 기본 제공하는 Vecter 이미지를 생성할 수 있습니다.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".DetailActivity">
<ImageView
android:id="@+id/iv_profile"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@drawable/ic_baseline_person_24"
android:layout_marginTop="80dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
android:text="이름"
android:textColor="@color/black"
android:textSize="30sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/iv_profile" />
<TextView
android:id="@+id/tv_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:text="000-0000-0000"
android:textColor="@color/black"
android:textSize="30sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_name" />
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity
-리사이클러뷰 아이템 클릭 메서드에 코드를 추가했습니다.
-아이템 클릭시 Intent 에 이름, 전화번호 데이터를 담아 DetailActivity를 호출 합니다.
public class MainActivity extends AppCompatActivity {
.....
@Override
protected void onCreate(Bundle savedInstanceState) {
.......
//리사이클러뷰 클릭 이벤트
mAdapter.setOnItemClickListener (new Adapter.OnItemClickListener () {
//아이템 클릭시 Intent에 데이터 담아 DetailActivity 호출
@Override
public void onItemClick(View v, int position) {
String name = mArrayList.get (position).getName ();
String number = mArrayList.get (position).getNumber ();
//Toast.makeText (mContext, "이름 : " + name + "\n전화번호 : " + number, Toast.LENGTH_SHORT).show ();
//인텐트 객체 생성.
//Intent 에 putExtra 로 name, number 담는다.
//startActivity 를 사용해 DetailActivity 를 호출한다.
Intent intent = new Intent (mContext, DetailActivity.class);
intent.putExtra ("name", name);
intent.putExtra ("number", number);
startActivity (intent);
}
...........
});
}
........
DetailActivity
public class DetailActivity extends AppCompatActivity {
TextView tv_name, tv_number;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView (R.layout.activity_detail);
//Intent 로 데이터를 받아옵니다.
Intent intent = getIntent ();
String name = intent.getStringExtra ("name");
String number = intent.getStringExtra ("number");
tv_name = findViewById (R.id.tv_name);
tv_number = findViewById (R.id.tv_number);
//받아온 데이터를 TextView 에 띄워줍니다.
tv_name.setText (name);
tv_number.setText (number);
}
}
)
-Jamse 를 클릭했을 때.
-명시적 Intent 를 사용해서 데이터를 담아 액티비티를 호출했습니다. 암시적 Intent는 프로필 이미지를 가져오는 기능을 추가할 때 다시 포스팅하겠습니다.
-코드를 복사 붙여넣기 하면 Intent 에 빨간줄이 뜰것입니다. Import해주면 해결 됩니다.
-전체 코드는 이전 전화번호부 앱 시리즈를 보면 확인 하실 수 있습니다.