Android Activity Intent-電話帳アプリケーション


NAVER辞書


1.強い興味を示す
2.[形容詞][形式](特に被害者を計画すること)
3.[名詞][形式または法律]意図(=意図)
4.[名詞][U]意志、意向(意向);n/a.目的
意味

Intent?

  • Intは、Androidコンポーネント間の通信を担当するメッセージオブジェクトです.作業を要求したり、データを交換したりすることができます.
  • intentは、明示的intentおよび暗黙的intentに分けられる.
  • 明示的なIntent-実行するコンポーネントのクラス名をIntentに含めます.主に同じアプリケーションを実行するためのコンポーネントです.
  • 暗黙のIntent-クラス名ではなくIntent Filter情報を使用します.主に他のアプリケーションを実行するためのコンポーネントです.
  • 明示的な統合


    -電話帳アプリケーションでLISAクラスタ内のアイテムに触れると、詳細アクティビティに切り替え、データ転送を完了します.
    -送信するデータは名前と電話番号です.
    activity_detail.xml
    -ImageViewにプロファイル写真が追加されました.
    -ImageVIEWにsrcの画像パスを入力すると、その画像をImageViewにオフセットできます.
    -drawableフォルダを右クリック→new→VectorAsset.アンドロイドは内蔵のVectorイメージを作成できます.
    <?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
    -「LISAクラスタビュープロジェクトをクリック」メソッドにコードを追加しました.
    -プロジェクトをクリックすると、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に赤い線が表示されます.Importで問題を解決します.
    -以前の電話帳アプリケーションシリーズを参照して、完全なコードを表示できます.