https://codeasy.tistory.com/29에 있는 내용을 기반으로 따라하였습니다.
public class MainActivity extends AppCompatActivity {
public enum Month {
JAN("Jan", 1),
FEB("Feb", 2),
NOV("Nov", 11),
DEC("Dec", 12);
private String monthString;
private int monthInt;
Month(String month, int i) {
monthString = month;
monthInt = i;
}
public static int ToInt(String Input) {
for (Month m : values()) {
if (m.monthString.equals(Input)) {
return m.monthInt;
}
}
return 1;
}
}
@BindView(R.id.horizontal_scroll_view)
RecyclerView horizontalScrollView;
@BindView(R.id.main_year)
TextView tvYear;
@BindView(R.id.main_month)
TextView tvMonth;
@BindView(R.id.main_list)
RecyclerView listMain;
private RecyclerView.Adapter mAdapter;
private RecyclerView.LayoutManager mLayoutManager;
private List<String> months = new ArrayList();
private List<String> years = new ArrayList<>();
@OnClick(R.id.today)
public void onClickAdd() {
Calendar cal = Calendar.getInstance();
tvYear.setText(String.valueOf(cal.get(Calendar.YEAR)));
tvMonth.setText(new SimpleDateFormat("MMM", Locale.ENGLISH).format(cal.get(Calendar.MONTH)));
}
@OnClick(R.id.main_month)
public void onClickMonth() {
horizontalScrollView.setAdapter(new SimpleStringRecyclerViewAdapter
(new SimpleStringRecyclerViewAdapter.OnItemClickListener() {
@Override
public void onItemClick(View view, int position, String value) {
tvMonth.setText(value);
horizontalScrollView.setVisibility(View.GONE);
//refreshList();
}
}, months));
Animation animation = new AlphaAnimation(0, 1);
animation.setDuration(1000);
horizontalScrollView.setVisibility(View.VISIBLE);
horizontalScrollView.setAnimation(animation);
}
@OnClick(R.id.main_year)
public void onClickYear() {
horizontalScrollView.setAdapter(new SimpleStringRecyclerViewAdapter
(new SimpleStringRecyclerViewAdapter.OnItemClickListener() {
@Override
public void onItemClick(View view, int position, String value) {
//list item was clicked
tvYear.setText(value);
horizontalScrollView.setVisibility(View.GONE);
//refreshList();
}
}, years));
Animation animation = new AlphaAnimation(0, 1);
animation.setDuration(1000);
horizontalScrollView.setVisibility(View.VISIBLE);
horizontalScrollView.setAnimation(animation);
}
@OnClick(R.id.memo_add)
public void onClickMemoAdd() {
Intent intent = new Intent(this, MemoActivity.class);
startActivity(intent);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
Calendar cal = Calendar.getInstance();
String dateMonth = new SimpleDateFormat("MMM", Locale.ENGLISH).format(cal.get(Calendar.MONTH) + 1);
String dateYear = String.valueOf(cal.get(Calendar.YEAR));
tvMonth.setText(dateMonth);
tvYear.setText(dateYear);
mLayoutManager = new LinearLayoutManager(this);
mAdapter
= new MainAdapter(Integer.valueOf(tvYear.getText().toString()), Month.ToInt(tvMonth.getText().toString()));
listMain.setLayoutManager(mLayoutManager);
listMain.setAdapter(mAdapter);
String[] monthList = new DateFormatSymbols(Locale.ENGLISH).getShortMonths();
for (int j = 0; j < 12; j++) {
months.add(monthList[j]);
}
for (int j = 0; j < 10; j++) {
int a = 2010;
years.add("" + (a + j));
}
LinearLayoutManager horizontalLayoutManager
= new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);
horizontalScrollView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.HORIZONTAL));
horizontalScrollView.setLayoutManager(horizontalLayoutManager);
}
@Override
public void onBackPressed() {
if (horizontalScrollView.getVisibility() == View.VISIBLE) {
horizontalScrollView.setVisibility(View.GONE);
} else {
super.onBackPressed();
}
}
@Override
protected void onResume() {
super.onResume();
}
}
activity_main.xml에 있는 RecyclerView(id : main_list)의 list_item을 안넣어줘서 그런가요..?
고수분들 Help