●버튼클릭하면 숫자가 하나씩 증가하는 예제
- ex1.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="${relativePackage}.${activityClass}" > <Button android:id="@+id/btn1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="숫자 증가" /> </RelativeLayout> |
-MainActirity.java
package com.example.day0307; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity implements OnClickListener{
int cnt=1;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //xml을 해석하여 위젯이 메모리에 올라옴 setContentView(R.layout.activity_main);
Button btn1 = (Button)findViewById(R.id.btn1);
//자바에서는 이벤트 구현시 3단계로 이루어진다. //1.리스너의 종류를 선택 //2.리스너가 보유한 메서드 재정의 //3.이벤트를 일으킨 이벤트 소스(위젯)과 리스너와의 연결 btn1.setOnClickListener(this);
}
//현재 클래스를 클릭을 감지하는 리스너로 정의했기 깨문에 클릭행위가 발생했을때 //어떤 구현을 할지를 아래의 매서드에서 재정의 해야한다. @Override public void onClick(View v) { // TODO Auto-generated method stub //숫자를 1씩 증가시켜 화면에 출력 cnt++; Toast.makeText(this, "숫자:"+cnt, Toast.LENGTH_SHORT).show();
} }
|
●버튼을 클릭하면 ImageView 의 이미지를 바꾸는 예제
- gallery.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" >
<ImageView android:id="@+id/imgView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="30dp" android:layout_marginRight="30dp" android:src="@drawable/img0"/> <Button android:id="@+id/backButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@id/imgView" android:layout_alignBottom="@id/imgView" android:text="이전"/> <Button android:id="@+id/forwardButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@id/imgView" android:layout_alignBottom="@id/imgView" android:text="다음"/>
</RelativeLayout> |
- GalleryActivity.java
//자바에서의 클래스는 사물 자체가 아닌, 사물을 생성해낼 수 있는 틀을 정의하는것! //개발자가 정의한 틀을 가리켜 클래스라 하고, 문자,숫자,논리값 이외의 새로운 객체자료형을 정의한 것고 같다. //따라서 앞으로는 클래스는 자료형으로 봐야한다. package study; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; import android.widget.Toast; import com.example.day0307.R; public class galleryActivity extends Activity implements OnClickListener{
ImageView imgView;
//갤러리와 같이 대량의 데이터를 순서대로 처리하는 경향이 강한 프로그램은 //대상 데이터를 변수명으로 처리하기 보다는 //순서있는 데이터를 처리하기 위한 배열기법을 이용하는 것이 효율적이다. int data[] = new int[7];
int cnt=0;
//액티비티의 생명주기중에서, 메모리에 최초에 올라올때 호출되는 메서드이다. //따라서 개발자는 앱이 가동되자 마자 최초에 보게될 화면 수정을 해야한다. protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); data[0] = R.drawable.img0; data[1] = R.drawable.img1; data[2] = R.drawable.img2; data[3] = R.drawable.img3; data[4] = R.drawable.img4; data[5] = R.drawable.img5; data[6] = R.drawable.img6;
//화면 호출 setContentView(R.layout.gallery);
//이미 xml에 의해 메모리에 올라온 기존 위젯을 참고 imgView = (ImageView)findViewById(R.id.imgView); Button backButton = (Button)findViewById(R.id.backButton); Button forwardButton = (Button)findViewById(R.id.forwardButton);
backButton.setOnClickListener(this); forwardButton.setOnClickListener(this);
}
//다음 사진 나오는 메서드 정의 public void forward(){ if(cnt==data.length-1){ Toast.makeText(this, "마지막 사진입니다.", Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(this, "다음사진", Toast.LENGTH_SHORT).show(); cnt++; imgView.setImageResource(data[cnt]); } } //이전 사진 나오는 메서드 정의 public void back(){ if(cnt==0){ Toast.makeText(this, "첫 사진입니다.", Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(this, "이전사진", Toast.LENGTH_SHORT).show(); cnt--; imgView.setImageResource(data[cnt]); } } @Override public void onClick(View v) { // TODO Auto-generated method stub Log.i("my info", "v의 값"+v);
//이벤트를 일으킨 id값 int id = v.getId();
if(id==R.id.backButton){ back(); } if(id==R.id.forwardButton){ forward(); } }
} |
'프로그래밍 > 안드로이드' 카테고리의 다른 글
안드로이드 스피너(spinner) (0) | 2015.03.17 |
---|---|
안드로이드 인텐트(intent) (0) | 2015.03.10 |
안드로이드 버튼 클릭, 화면 이동 (0) | 2015.03.06 |
안드로이드 에러 View requires API level 14 (current min is 10): <GridLayout> (1) | 2015.03.05 |
안드로이드 레이아웃 만들기2 (0) | 2015.03.05 |
댓글