기술 블로그
[안드로이드 복습]3장 뷰와 간단한 인텐트 본문
반응형
버튼을 클릭했을 떄 어떤 일을 수행하려면 onClick 속성을 정의해야 한다.
xml파일에서도 요소(주로Button)의 속성으로 지정할 수 있다.
1 2 3 4 5 | <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="sendMessage"//이부분을 쓰면 ide에서 java파일에 온클릭 메소드를 생성 할거냐고 물어본다. android:text="@string/button_send" /> | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.EditText; public class MainActivity extends AppCompatActivity { public final static String m ="massage"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void sendMessage(View view) {//onclick 속성에 정의한 이름으로 된 메서드는 다음과같은 규칙을 따른다, //1. public이며 ,2. 반환값은 void이고 , 3. 파라미터는 View만 가지고 있어야 한다. Intent intent = new Intent(this,DisplayMessageActiity.class); //Intent생성사중 context와 class를 받는 생성자를 통해 인텐트 객체를 생성했다. //context는 안드로이드 내의 만능인데 액티비티가 이것을 상속받아서 this를 썻다. , // 두번째 파라미터인class는 intent를 통해 수행할 대상이다. EditText editText = findViewById(R.id.edit_message); String message = editText.getText().toString(); //gettext로 텍스트를 얻고 이를 Stirng형태로 변환한다. intent.putExtra(m,message); //intent의 putextra메서드는 Edittext의 값을 인텐트의 추가정보로 저장한다. 형태는 키(key)-값(value) // 여기서 m은 전역으로 선언된 String m이 키이고 값은 editText를 통해 받은 message String값이다. // 키는 유일해야하며 인텐트의 추가정보는 자바의 맵 형태로 저장된다. startActivity(intent);//액티비티를 시작할 의도를 가진 인텐트를 동작하게한다 (여기서는 인텐트의 두번째 파라미터) } } | cs |
받는쪽 액티비티에서의 동작
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.ViewGroup; import android.widget.TextView; public class DisplayMessageActiity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_display_message_actiity); Intent intent=getIntent(); //getIntent메서드는 이 액티비티를 실행한 인텐트를 얻는다. String message = intent.getStringExtra(MainActivity.m);//인텐트에 담긴 데이터를 얻기위해 getStringExtra메서드를 사용한다. TextView textView = new TextView(this); textView.setTextSize(40); //xml에서 가능한건 java로도 할 수 있다. textView.setText(message); //textview에 setText메서드로 message String을 받는다. ViewGroup layout = findViewById(R.id.activity_display_message); layout.addView(textView); } } | cs |
반응형
'Android' 카테고리의 다른 글
[안드로이드 복습]7장 암시적 인텐트 (0) | 2018.11.17 |
---|---|
[안드로이드 복습] 6장 안드로이드는 액티비티다. (0) | 2018.11.17 |
[안드로이드 복습] 10장 화면제약을 극복하기(스크롤뷰와 리스트뷰) (0) | 2018.11.16 |
android soundpool 사용하기 (0) | 2018.10.20 |
안드로이드 학습계획 (0) | 2018.09.26 |
Comments