public class LoginActivity extends AppCompatActivity {
public static final int REQUEST_CODE_MENU = 101;
EditText usernameInput;
EditText passwordInput;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
Button loginButton = findViewById(R.id.loginButton);
loginButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String username = usernameInput.getText().toString();
String password = passwordInput.getText().toString();
// 메뉴액티비티로 넘어갈 수 있도록 액티비티간 전환 겸 정보전달 객체인 intent 지정
Intent intent = new Intent(getApplicationContext(), MenuActivity.class);
// 해당 객체에 아이디와 비밀번호 String 넣어서 전달하며 메인메뉴 액티비티 생성
intent.putExtra("username", username);
intent.putExtra("password", password);
// 메뉴액티비티 생성 : 인텐트 인자와 REQUEST_CODE_MENU 추가하여 받는 액티비티 측에서 확인 및 작업하도록 지정
startActivityForResult(intent, REQUEST_CODE_MENU);
}
});
usernameInput = findViewById(R.id.usernameInput);
passwordInput = findViewById(R.id.passwordInput);
}
// 메인메뉴에서 로그인화면으로 이동하는 경우, 메인메뉴로부터 Intent 받아서 Toast 메시지 출력
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
// 다른 액티비티로부터 받은 값이 REQUEST_CODE_MENU인 경우 Toast 출력
if (requestCode == REQUEST_CODE_MENU) {
if (intent != null) {
String menu = intent.getStringExtra("menu");
String message = intent.getStringExtra("message");
Toast toast = Toast.makeText(getBaseContext(), "result code : " + resultCode + ", menu : " + menu + ", message : " + message, Toast.LENGTH_LONG);
toast.show();
}
}
}
}
3-6. MenuActivity.java
public class MenuActivity extends AppCompatActivity {
public static final int REQUEST_CODE_CUSTOMER = 201;
public static final int REQUEST_CODE_REVENUE = 202;
public static final int REQUEST_CODE_PRODUCT = 203;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
// process received intent
Intent receivedIntent = getIntent();
String username = receivedIntent.getStringExtra("username");
String password = receivedIntent.getStringExtra("password");
Toast.makeText(this, "username : " + username + ", password : " + password, Toast.LENGTH_LONG).show();
// backButton 지정
Button back_button = findViewById(R.id.backButton);
/* backButton에 setOnClickListener 메소드 구현
toast 메시지 전달하여, 메인메뉴에서 출력용
로그인 메뉴로 복귀(현재 액티비티 종료)
*/
back_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent resultIntent = new Intent();
resultIntent.putExtra("message", "result message is OK!");
setResult(Activity.RESULT_OK, resultIntent);
finish();
}
});
/* 3가지 추가메뉴(Customer, Product, Revenue)에 대한 버튼 각각 지정
** 각 버튼에 setOnClickListener 메소드 구현
** 각 버튼에 대응하는 화면으로 넘어갈 수 있도록 해당 액티비티를 갖는 Intent 지정
** 해당 Intent들에 전달용 메시지 지정 : intent.putExtra("titleMsg", "고객관리 화면");
** 이후 해당 Intent와 REQUEST_CODE_CUSTOMER를 인자로 갖도록 하여 액티비티 생성 코드 추가
*/
Button menu01_button = findViewById(R.id.menu01Button);
menu01_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getApplicationContext(), CustomerActivity.class);
intent.putExtra("titleMsg", "고객 관리 화면");
startActivityForResult(intent, REQUEST_CODE_CUSTOMER);
}
});
Button menu02_button = findViewById(R.id.menu02Button);
menu02_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getApplicationContext(), RevenueActivity.class);
intent.putExtra("titleMsg", "매출 관리 화면");
startActivityForResult(intent, REQUEST_CODE_REVENUE);
}
});
Button menu03_button = findViewById(R.id.menu03Button);
menu03_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getApplicationContext(), ProductActivity.class);
intent.putExtra("titleMsg", "상품 관리 화면");
startActivityForResult(intent, REQUEST_CODE_PRODUCT);
}
});
}
// 로그인 액티비티를 제외한 나머지 3개 액티비티로부터 복귀신호를 받은 경우, Toast 메시지 출력용 메소드
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
if (intent != null) {
if (requestCode == REQUEST_CODE_CUSTOMER) {
String message = intent.getStringExtra("message");
if (message != null) {
showToast("고객관리 응답, result code : " + resultCode + ", message : " + message);
}
} else if (requestCode == REQUEST_CODE_REVENUE) {
String message = intent.getStringExtra("message");
if (message != null) {
showToast("매출관리 응답, result code : " + resultCode + ", message : " + message);
}
} else if (requestCode == REQUEST_CODE_PRODUCT) {
String message = intent.getStringExtra("message");
if (message != null) {
showToast("상품관리 응답, result code : " + resultCode + ", message : " + message);
}
}
}
}
public void showToast(String message) {
Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show();
}
}