package com.example.project;
import android.app.Activity;
import android.app.TabActivity;
import android.content.Intent;
import android.util.Log;
import android.os.Bundle;
import android.view.Menu;
import android.widget.Button;
import android.view.MenuItem;
import android.view.View.OnClickListener;
import android.view.View;
import android.widget.Toast;
import android.widget.ImageView;
import android.widget.TabHost;
import android.widget.TextView;
import android.widget.TabHost.TabContentFactory;
public class MainActivity extends TabActivity implements TabContentFactory,OnClickListener{
ImageView imgView;
//갤러리와 같이 대량의 데이터를 순서대로 처리하는 경향이 강한 프로그램은
//대상 데이터를 변수명으로 처리하기 보다는
//순서있는 데이터를 처리하기 위한 배열기법을 이용하는 것이 효율적이다.
int data[] = new int[7];
int cnt=0;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TabHost tabHost = getTabHost();
//Intent와 별도의 Activity 클래스를 활용한 탭 구성
tabHost.addTab(tabHost.newTabSpec("tab1")
.setIndicator("Text")
.setContent(new Intent(this, Tab2Activity.class)));
//XML Layout에 정의된 화면으로 탭을 구성
tabHost.addTab(tabHost.newTabSpec("tab2")
.setIndicator("imgeView", getResources().getDrawable(R.drawable.a3))
.setContent(R.id.ImageLayout));
//JAVA에서 탭을 구성
tabHost.addTab(tabHost.newTabSpec("tab3")
.setIndicator("Self maded Tab")
.setContent(this));
tabHost.setCurrentTab(1);
}
protected void onCreate1(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
data[0] = R.drawable.a1;
data[1] = R.drawable.a2;
data[2] = R.drawable.a3;
data[3] = R.drawable.a4;
data[4] = R.drawable.a5;
data[5] = R.drawable.a6;
data[6] = R.drawable.a7;
data[7] = R.drawable.a8;
//화면 호출
setContentView(R.layout.activity_main);
//이미 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]);
}
}
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();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public View createTabContent(String tag) {
if (tag.compareTo("tab3") == 0){
TextView text = new TextView(this);
text.setText("Self maded Tab!!");
return text;
}
return null;
}
}
여기서 두개 Create 랑 Create1 를 합치고 싶은데 저렇게 안해놓으면 실행이안됩니다. 혹시 알려주시면 감사하겠습니다.