●버튼을 클릭하면 메세지가 나오는 예제
- MainActivity.java
package com.example.project import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; //사용자가 위젯에 이벤트를 발생시킬때, 이러한 이벤트를 click이벤트라 하고, 이 이벤트가 발생했을때 어떤 내용의 //구현을 할지는 개발자의 몫이기 때문에, 내용이 불완전한 인터페이스 객체가 전달된다! public class MainActivity extends Activity implements OnClickListener { //클릭 이벤트를 사용하려면 implements OnClickListener를 사용해야한다. @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //xml화면이 보여지게됨 setContentView(R.layout.ex9);
//이벤트 구현의 대상이 되는 위젯을 명시하기 Button btn1 = (Button)findViewById(R.id.btn1);
//버튼 클릭시 이벤트 발생 btn1.setOnClickListener(this);
}
@Override public void onClick(View v) { // TODO Auto-generated method stub Toast.makeText(this, "클릭되었습니다.", Toast.LENGTH_SHORT).show(); } }
|
- ex.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center" >
<!-- 아이디는 한xml당 id값이 중복되지만 않으면 된다. --> <Button android:id="@+id/btn1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="클릭"/>
</LinearLayout> |
●버튼을 클릭하면 화면이 이동하는 예제
- 액티비티를 추가하면 매니페스트에 액티비티를 추가해야한다.
앱이 실행되면 <intent-filter>가 있는 액비티비가 먼저 실행된다. 먼저 화면에 띄울 액티비티 안에 <intent-filter>를 넣어준다.
- AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.day0228" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="21" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > </activity>
<!-- 액티비티 추가하면 여기에 선언해야한다 --> <activity android:name="study.activity.ActivityA"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
<activity android:name="study.activity.ActivityB"> </activity>
</application> </manifest>
|
-a.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/RelativeLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" >
<Button android:id="@+id/btn_move" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="다른 화면 이동"/>
</RelativeLayout> |
- ActivityA.java
package study.activity; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import com.example.day0228.R; public class ActivityA extends Activity implements OnClickListener{
//액티비티 클래스가 최초에 실행될때 메모리에 올라오는 순간, 아래의 onCreate 메서드가 자동으로 호출된다. //따라서 개발자는, 화면이 최초에 앱 가동에 의해 보여질때 하고 싶은 코드를 작성하면 된다.
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
//xml에 명시된 태그를 해석하여 실제 위젯으로 생성 및 메모리에 올리는 과정을 임플레이션이라 한다. setContentView(R.layout.a);
//이미 메모리에 올라온 버튼을 제어하기 위해, findViewById라는 메서드로 버튼을 지적한다. Button btn_move = (Button)findViewById(R.id.btn_move); btn_move.setOnClickListener(this); } @Override public void onClick(View v) { //다른 액티비티 호출 //this는 현재 클래스 Intent intent = new Intent(this, ActivityB.class); startActivity(intent);
}
} |
- b.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#ffdd00" android:gravity="center" >
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="닫기"/>
</LinearLayout> |
- ActivityB.java
package study.activity; import com.example.day0228.R; import android.app.Activity; import android.os.Bundle; public class ActivityB extends Activity{
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.b);
} }
|
'프로그래밍 > 안드로이드' 카테고리의 다른 글
안드로이드 인텐트(intent) (0) | 2015.03.10 |
---|---|
안드로이드 버튼 클릭, 이미지 변경 (0) | 2015.03.10 |
안드로이드 에러 View requires API level 14 (current min is 10): <GridLayout> (1) | 2015.03.05 |
안드로이드 레이아웃 만들기2 (0) | 2015.03.05 |
안드로이드 스마트폰으로 테스트하면서 개발하기 (0) | 2015.03.03 |
댓글