Android 앱: 이벤트와 리스너를 함께 봅니다.

지난번
신인이 Android의 뷰라는 것을 정리해 본다(초보자 Android 앱 개발)

계속. . .

소개



입사 3개월의 페이페입니다. 안드로이드 앱 개발 공부중에 정리하고 있습니다.

이번에는 이벤트와 리스너에 대해. 악마 초 기초이므로 초 초보자 용이라고 생각해 주시면 감사합니다. .

이번에 나오는 단어들


  • 이벤트
    youtube의 앱 아이콘을 탭하면 youtube가 열리지 않습니까?
    이 앱 탭하는 사용자 조작을 이벤트라고 부릅니다.
  • 이벤트 핸들러
    youtube의 앱을 탭하면 youtube가 열리지 않습니까?
    이 앱 탭한다는 것이 이벤트.
    youtube가 열리는 처리를 이벤트 핸들러라고 합니다.
  • 리스너
    안드로이드는 youtube가 언제 터치 될 수 있는지 보고 있습니다.
    이 지-라고 바라보고 있는 것을 리스나라고 한다.

  • 마지막 단어들
  • 보기
    화면 부품
  • 활동
    화면 자체

  • 무엇이든 견본



    환경



    androidstudio 3.6.2
    openjdk 버전 "11.0.6"

    만드는 화면



    간단하게 입력된 문자를 버튼 탭으로 표시해주는 앱을 만듭니다.



    버튼 탭 = 이벤트
    입력된 문자를 아래에 표시하는 처리 = 이벤트 핸들러
    탭하거나 감시하는 안드로이드 기능 = 리스너

    샘플



    길어지기 때문에 import 문은 생략

    activity_main.xml
    <LinearLayout~~省略~~>
    
        <EditText
            android:id="@+id/etName"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="text"/>
        <Button
            android:id="@+id/btClick"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="GoGo!"/>
        <TextView
            android:id="@+id/tvOutput"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="25dp"
            android:text=""
            android:textSize="25dp"/>
    </LinearLayout>
    

    MainActivity.java
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            //表示ボタンであるButtonオブジェクトを取得
            Button btClick = findViewById(R.id.btClick);
            //リスナクラスのインスタンスを生成
            HelloListener listener = new HelloListener();
            //表示ボタンにリスナを設定
            btClick.setOnClickListener(listener);
        }
    
        private class HelloListener implements View.OnClickListener{
            @Override
            public void onClick(View view){
                //名前入力欄であるEditTextオブジェクトを取得
                EditText input = findViewById(R.id.etName);
                //メッセージを表示するTextViewオブジェクトを取得
                TextView output = findViewById(R.id.tvOutput);
                //入力された名前の文字列をinputStrに格納
                String inputStr = input.getText().toString();
                //メッセージを表示
                output.setText(inputStr + "←入力されたテキスト");
                }
            }
        }
    

    초보적인 소중한 사촌



    이전과 달리 java 클래스(MainActivity)와 XML 클래스(activity_main)로 나뉩니다.
    Java 클래스는 리스너의 설정과 처리, xml 쪽은 화면 구성 (액티비티)을 만들고 있다고 생각합니다.

    이번 소중한 사촌은
    ・상기 2파일의 연결을 어디에서 하고 있는가.
    · 리스너 설정 및 이벤트 핸들러 작성 방법

    입니다.

    자바 파일과 화면 부품의 연결



    MainActivity.java
    
    //表示ボタンであるButtonオブジェクトを取得
    Button btClick = findViewById(R.id.btClick);
    
    

    activity_main.xml
    <Button
            android:id="@+id/btClick"
    
    

    java 클래스로 화면 파트를 취득하는 결정의 패턴. R은 지금 상관하지 않는다. findViewById(R.id.화면 부품 ID명)로 취득할 수 있다.
    그것을 Button 객체의 변수에 저장.

    리스너 설정 및 이벤트 핸들러



    리스너 클래스를 작성 → 준비한 btnClick에 리스너 설정 → 리스너 클래스에 이벤트 핸들러를 기술

    MainActivity.java
    
    //リスナクラスのインスタンスを生成
    HelloListener listener = new HelloListener();
    //表示ボタンにリスナを設定
    btClick.setOnClickListener(listener);
    
    

    이 기술로, 버튼에 리스너를 설정하는 곳까지 실시하고 있습니다.
    아래의 리스너 클래스 내에 이벤트 핸들러를 기입.

    MainActivity.java
    private class HelloListener implements View.OnClickListener{
            @Override
            public void onClick(View view){
                //名前入力欄であるEditTextオブジェクトを取得
                EditText input = findViewById(R.id.etName);
                //メッセージを表示するTextViewオブジェクトを取得
                TextView output = findViewById(R.id.tvOutput);
                //入力された名前の文字列をinputStrに格納
                String inputStr = input.getText().toString();
                //メッセージを表示
                output.setText(inputStr + "←入力されたテキスト");
                }
            }
    

    findViewId로 화면 파트를 가져 와서 TextView에 표시합니다.

    해설하지 않은 아래의 코드에 대해서는, 지금은 참을 수 없다고 생각해 주세요. 나중에 활동의 라이프사이클을 설명할 때 작성할 것입니다.
     @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    

    끝에



    해설 쓰면 이해는 깊어지네요. .
    알기 쉽게 쓸 수 있는지 여부는 따로 따로. . .

    정진합니다. 일본어가 엉망인 것은 용서해 주십시오.

    다음 번에는 화면 천이를 써볼 예정!

    좋은 웹페이지 즐겨찾기