У меня есть кнопка, и я хочу, чтобы она была невидимой при запуске программы. Проблема в том, что я использую TabLayout
и не могу изменить эту функцию в методе onCreate()
.
Я написал следующий код onCreate()
:
((Button) findViewById(R.id.btn1)).setVisibility(View.INVISIBLE);
но обнаружена ошибка: Null Pointer Exeption!
Я хочу включить невидимую функцию кнопки, не нажимая кнопку в начале программы.
button
, к которому я хочу применить свойство invisible
, принадлежит одному из моих tablayout layouts
, а не activity_main_layout
. По этой причине, когда я хочу применить свойство invisible
, я получаю Null Pointer Exeption error
. Я хотел знать решение. Что я должен сделать, чтобы подключить button object
к Layer view(Xml Button)
?
Мои коды:
public class MainActivity extends AppCompatActivity{
ViewPager viewPager;
private TabLayout tabLayout;
int[] layoutRes = {R.layout.call_tab,R.layout.access_tab,R.layout.gap_tab,R.layout.support_tab,R.layout.news_tab};
int[] iconTabs = {R.mipmap.ic_phone_in_talk_white_36dp, R.mipmap.ic_android_studio_white_36dp,
R.mipmap.ic_android_messages_white_36dp, R.mipmap.ic_currency_usd_white_36dp,
R.mipmap.ic_home_white_36dp};
public ImageView img_notification;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
viewPager = (ViewPager) findViewById(R.id.viewpager);
tabLayout = (TabLayout) findViewById(R.id.tablayout);
viewPager.setAdapter(new TabsAdapter());
tabLayout.setupWithViewPager(viewPager);
TabLayout.Tab tabnews = tabLayout.getTabAt(4);
tabnews.select();
img_notification = (ImageView) findViewById(R.id.img_notification);
(!Error in this line) img_notification.setVisibility(View.INVISIBLE);(!)
SetFontForTabs();
for (int i = 0; i < iconTabs.length; i++) {
tabLayout.getTabAt(i).setIcon(iconTabs[i]);
}
}
public class TabsAdapter extends PagerAdapter{
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
View view = LayoutInflater.from(MainActivity.this).inflate(layoutRes[position],container,false);
container.addView(view);
return view;
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
View view = (View) object;
container.removeView(view);
}
@Override
public int getCount() {
return layoutRes.length;
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return view == object;
}
}
}