package com.example.howtopickupthedatename;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class MainActivity extends AppCompatActivity {
int startDay = 0;
public String year = "";
public String month = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText inputYears = (EditText)findViewById(R.id.years);
EditText inputMonths = (EditText)findViewById(R.id.months);
TextView outputDate = (TextView)findViewById(R.id.dates);
TextView day1 = (TextView)findViewById(R.id.day1);
inputYears.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
boolean handled = false;
if(actionId == EditorInfo.IME_ACTION_SEND){
year = inputYears.getText().toString();
handled = true;
v.setFocusable(false);
v.setFocusableInTouchMode(true);
v.setFocusable(true);
}
return handled;
}
});
inputMonths.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
boolean handled = false;
if(actionId == EditorInfo.IME_ACTION_SEND){
//year = inputYears.getText().toString();
month = inputMonths.getText().toString();
String date = year+"-"+month+"-"+1;
String day = " ";
try {
//day = getDateDay(date,"yyyy-MM-dd");
startDay = getDateDay2(date, "yyyy-mm-dd");
} catch (Exception e) {
e.printStackTrace();
}
if(startDay != 0){
day1.setText(" "+startDay);
//outputDate.setText(day);
}
handled = true;
hidekeyboard(inputMonths);
v.setFocusable(false);
v.setFocusableInTouchMode(true);
v.setFocusable(true);
}
return handled;
}
});
}
private void hidekeyboard(EditText et){
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(et.getWindowToken(),0);
}
public static int getDateDay2(String date, String dateType) throws Exception {
String day = "";
SimpleDateFormat dateFormat = new SimpleDateFormat(dateType);
Date nDate = dateFormat.parse(date);
Calendar cal = Calendar.getInstance();
cal.setTime(nDate);
int dayNum = cal.get(Calendar.DAY_OF_WEEK);
return dayNum;
}
public static String getDateDay(String date, String dateType) throws Exception {
String day = "";
SimpleDateFormat dateFormat = new SimpleDateFormat(dateType);
Date nDate = dateFormat.parse(date);
Calendar cal = Calendar.getInstance();
cal.setTime(nDate);
int dayNum = cal.get(Calendar.DAY_OF_WEEK);
switch (dayNum) {
case 1:
day = "일";
break;
case 2:
day = "월";
break;
case 3:
day = "화";
break;
case 4:
day = "수";
break;
case 5:
day = "목";
break;
case 6:
day = "금";
break;
case 7:
day = "토";
break;
}
return day;
}
}
일단 소스코드는 이렇습니다.
현재가 몇년도인지, 몇월인지 입력을 하면 밑의 이 곳에 날짜가 재설정되도록 만들고 있습니다. 
하지만 현재, 날짜를 설정해야하는 텍스트 박스의 숫자가 년과 월 둘다 바꾸었을때는 숫자가 바뀌는데 월만 바꾸거나 년만 바꾸면 숫자가 바뀌지 않고 있습니다.
어떻게 하면 하나만 변경해도 숫자가 바뀌도록 할 수 있을까요?