최소 버전 : API 14 (안드로이드 4.0)
개발 툴 : 안드로이드 스튜디오
지금 가계부 앱을 만들려고 하는데 첫화면의 Button들 중에서 1개 버튼의 텍스트를 연도와 월로 표기할려고 합니다.
그래서 버튼의 텍스트를 MainActivity의 onCreate메소드에서 setText로 변경할려고 할때 실행하면 바로 죽습니다. (반대로 그부분 주석처리하면 문제 없이 실행됩니다..)
public class MainActivity extends AppCompatActivity implements ActionBar.TabListener {
SectionsPagerAdapter mSectionsPagerAdapter;
ViewPager mViewPager;
Button button;
int YEAR = 0, MONTH = 0, DAY = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
int[] date = DataFragment.getInstance().getDate();
YEAR = date[0];
MONTH = date[1];
DAY = date[2];
Button button = (Button)findViewById(R.id.DateBtn);
/* 이 주석 지우고 실행하면 실행하자마자 바로 죽습니다..
button.setText(YEAR + ". " + MONTH);
*/
final ActionBar actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.setDisplayOptions(actionBar.DISPLAY_SHOW_TITLE);
actionBar.setDisplayShowHomeEnabled(false);
mSectionsPagerAdapter = new SectionsPagerAdapter(getApplicationContext(), getSupportFragmentManager());
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mSectionsPagerAdapter);
mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
actionBar.setSelectedNavigationItem(position);
}
});
// For each of the sections in the app, add a tab to the action bar.
for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) {
// Create a tab with text corresponding to the page title defined by
// the adapter. Also specify this Activity object, which implements
// the TabListener interface, as the callback (listener) for when
// this tab is selected.
actionBar.addTab(
actionBar.newTab()
.setText(mSectionsPagerAdapter.getPageTitle(i))
.setTabListener(this));
}
}