Я хочу показать макет, такой как Google PlayStore, когда нет интернета, он показывает Нет интернета. Я создал макет для этого и использовал код для проверки сети
private boolean isNetworkAvailable(){
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
и я использовал
if (isNetworkAvailable()){
}else {
setContentView(R.layout.no_internet);
}
чтобы показать макет. Но я получаю сообщение об ошибке
Попытка вызвать виртуальный метод void android.support.v4.widget.DrawerLayout.addDrawerListener (android.support.v4.widget.DrawerLayout $ DrawerListener) 'для ссылки на пустой объект
Как мне показать макет?
Вот мой основной код активности
public class MainActivity extends BaseActivity
implements UpdateHelper.OnUpdateCheckListener, NavigationView.OnNavigationItemSelectedListener {
private CircleImageView mDisplayImageView;
private TextView mNameTextView;
private TextView mEmailTextView;
String token = "";
List<Item> items = new ArrayList<>();
WebView webView;
PostAdapter adapter;
SpinKitView progress;
RecyclerView recyclerView;
LinearLayoutManager manager;
Boolean isScrolling = false;
int currentItems, totalItems, scrollOutItems;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
recyclerView = (RecyclerView) findViewById(R.id.postList);
manager = new LinearLayoutManager(this);
adapter = new PostAdapter(this, items);
recyclerView.setLayoutManager(manager);
recyclerView.setAdapter(adapter);
progress = (SpinKitView) findViewById(R.id.spin_kit);
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if(newState == AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL)
{
isScrolling = true;
}
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
currentItems = manager.getChildCount();
totalItems = manager.getItemCount();
scrollOutItems = manager.findFirstVisibleItemPosition();
if(isScrolling && (currentItems + scrollOutItems == totalItems))
{
isScrolling = false;
getData();
}
}
});
getData();
if (isNetworkAvailable()){
}else {
setContentView(R.layout.no_internet);
}
if (isFirstTime()) {
new MaterialStyledDialog.Builder(MainActivity.this)
.setTitle("Psst!")
.setDescription(R.string.alerttext)
.setIcon(R.drawable.hello)
.withIconAnimation(true)
.withDialogAnimation(true)
.setHeaderColor(R.color.white)
.setPositiveText("Ok!")
.show();
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setItemIconTintList(null);
navigationView.setNavigationItemSelectedListener(this);
UpdateHelper.with(this)
.onUpdateCheck(this)
.check();
View navHeaderView = navigationView.getHeaderView(0);
mDisplayImageView = (CircleImageView) navHeaderView.findViewById(R.id.imageView_display);
mNameTextView = (TextView) navHeaderView.findViewById(R.id.textView_name);
mEmailTextView = (TextView) navHeaderView.findViewById(R.id.textView_email);
mEmailTextView.setText(R.string.verified);
loadUserInfo();
if (mFirebaseUser == null) {
String email = mFirebaseUser.getEmail();
FirebaseDatabase.getInstance().getReference(Constants.USER_KEY).child(mFirebaseUser.getEmail().replace(".", ","))
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
private void getData()
{
String url = BloggerAPI.url + "?key=" + BloggerAPI.key;
if(token != ""){
url = url+ "&pageToken="+ token;
}
if(token == null){
return;
}
progress.setVisibility(View.VISIBLE);
final Call<PostList> postList = BloggerAPI.getService().getPostList(url);
postList.enqueue(new Callback<PostList>() {
@Override
public void onResponse(Call<PostList> call, Response<PostList> response) {
PostList list = response.body();
token = list.getNextPageToken();
items.addAll(list.getItems());
adapter.notifyDataSetChanged();
Toast.makeText(MainActivity.this, "Success", Toast.LENGTH_SHORT).show();
progress.setVisibility(View.GONE);
}
@Override
public void onFailure(Call<PostList> call, Throwable t) {
Toast.makeText(MainActivity.this, "Error Occured", Toast.LENGTH_SHORT).show();
}
});
}
private void loadUserInfo()
{
FirebaseUser user = mAuth.getCurrentUser();
if (user != null) {
if (user.getPhotoUrl() != null) {
Glide.with(this)
.load(user.getPhotoUrl().toString())
.into(mDisplayImageView);
}
if (user.getDisplayName() != null) {
mNameTextView.setText(user.getDisplayName());
}
if (user.getEmail() != null) {
mEmailTextView.setText(user.getEmail());
}
}
}
private boolean isNetworkAvailable(){
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
AlertDialog.Builder mBuilder = new AlertDialog.Builder(MainActivity.this);
mBuilder.setCancelable(false);
mBuilder.setTitle("Are you sure you want to exit?");
mBuilder.setNegativeButton("NO", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
mBuilder.setPositiveButton("YES", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finishAffinity();
System.exit(0);
}
});
AlertDialog alertDialog = mBuilder.create();
alertDialog.show();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
FirebaseAuth.getInstance().signOut();
Intent logout = new Intent(MainActivity.this, WelcomeActivity.class);
startActivity(logout);
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.about) {
Intent intent = new Intent(MainActivity.this, AboutActivity.class);
startActivity(intent);
// Handle the camera action
} else if (id == R.id.bookstore) {
startActivity(new Intent(this, BooksActivity.class));
}else if (id == R.id.feedback) {
new EasyFeedback.Builder(this)
.withEmail(R.string.emailid)
.withSystemInfo()
.build()
.start();
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
private boolean isFirstTime() {
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
boolean ranBefore = preferences.getBoolean("RanBefore", false);
if (!ranBefore) {
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("RanBefore", true);
editor.commit();
}
return !ranBefore;
}