当我刷新应用崩溃的页面时,这是我的代码。 刷新时,我希望它检查设备是否连接到互联网(如果是),然后查看具有按钮的Stub,否则不要查看Stub。
请告诉我我需要在哪里修改代码,我是一个完整的初学者,因此请详细指导我。
package com.example.test1api;
import androidx.appcompat.app.AppCompatActivity;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.view.View;
import android.view.ViewStub;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private Button button;
SwipeRefreshLayout refreshLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
checkConectivity();
refreshLayout = findViewById(R.id.refreshLayout);
refreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
checkConectivity();
refreshLayout.setRefreshing(false);
}
});
}
public void checkConectivity () {
ViewStub dailyversestub;
dailyversestub = findViewById(R.id.versestub);
ConnectivityManager manager = (ConnectivityManager)
getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = manager.getActiveNetworkInfo();
if (networkInfo == null || !networkInfo.isConnected() || !networkInfo.isAvailable()) {
if (dailyversestub!=null) {
dailyversestub.setVisibility(View.GONE);
}
} else {
if (dailyversestub!=null) {
dailyversestub.setVisibility(View.VISIBLE);
}
button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, EntireMassOrder.class);
startActivity(intent);
}
});
}
}
}
LOGCAT
2020-06-01 14:07:43.062 10301-10328 / com.example.test1api E / ion:ioctl c0044901失败,代码为-1:无效参数
答案 0 :(得分:-1)
如logcat所示,它的发生是由于NullPointerException
,这意味着您正在尝试访问的dailyversestub
是null
。
因此,在致电dailyversestub.setVisibility(View.GONE)
之前,请添加NULL校验为
if(dailyversestub!=null){
dailyversestub.setVisibility(View.GONE);
}
dailyversestub.setVisibility(View.VISIBLE);
相同