S.S.G
버튼을 통한 Activity 호출 본문
여러 액티비티를 호출해보는 연습
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn2 =(Button)findViewById(R.id.button2);
Button btn3 =(Button)findViewById(R.id.button3);
Button btn4 =(Button)findViewById(R.id.button4);
btn4.setOnClickListener(this);
btn2.setOnClickListener(this);
btn3.setOnClickListener(this);
}
public void onClick(View v){
switch(v.getId()){
case R.id.button2:
Intent intent = new Intent(MainActivity.this,WeigthSumTest.class);
startActivity(intent);
break;
case R.id.button3:
Intent intent2 = new Intent(MainActivity.this,MainLifeCycleActivity.class);
startActivity(intent2);
break;
case R.id.button4:
Intent intent3 = new Intent(this,UIActivity.class);
startActivity(intent3);
break;
}
}
}
※ onClick 부분을 switch를 쓰지 않고 좀더 효율적인 방법으로 변경하였다. 교과서에서는 나오지 않는 실무에서 사용되는 방식 이라고 한다. 프로그래머는 게을러야 한다고 한다.그렇게되면 조금이라도 더 편한 방법을 찾기위해 간단한 코딩을 구현할 수 있기 때문이라고 한다.
public void onClick(View v){
Intent intent = null;
Class<?>[] clss = { WeigthSumTest.class, MainLifeCycleActivity.class,UIActivity.class};
int intentIndex = -1;
//region (배열에 의한 버튼 처리)
long[] rids = {R.id.button2, R.id.button3, R.id.button4};
int ridIndex = -1;
for(int i=0; i<rids.length;i++){
if(rids[i] == v.getId()){
intentIndex = i;
break;
}
}
if(intentIndex >-1){
if(clss.length > intentIndex && clss[intentIndex] != null){ // 생략가능
intent = new Intent(getApplicationContext(), clss[intentIndex]);
startActivity(intent);
}
}
}
}
Activity가 추가될 경우에는 clss 배열에 클래스 명을 추가적으로 적어주기만 하면 된다.