Java Android studio-在互联网不可用时禁用下载按钮/活动

Java Android studio-在互联网不可用时禁用下载按钮/活动,java,android,button,google-cloud-firestore,disable,Java,Android,Button,Google Cloud Firestore,Disable,我在我的应用程序中配置了下载按钮。当我在internet不可用时单击“下载”按钮时,该按钮被单击。当internet可用时,此下载活动开始,并且文件在internet脱机时我单击的次数都不会被下载 当互联网不可用时,我是否可以通过发送消息“检查您的互联网连接”来禁用下载活动 主要活动 public class Download_Activity extends AppCompatActivity { FirebaseFirestore downdb; RecyclerView

我在我的应用程序中配置了下载按钮。当我在internet不可用时单击“下载”按钮时,该按钮被单击。当internet可用时,此下载活动开始,并且文件在internet脱机时我单击的次数都不会被下载

当互联网不可用时,我是否可以通过发送消息“检查您的互联网连接”来禁用下载活动

主要活动


public class Download_Activity extends AppCompatActivity {

    FirebaseFirestore downdb;
    RecyclerView downRecyclerView;
    ArrayList<Downloadsmodel> downloadsmodelArrayList=new ArrayList<>();
    DownloadsAdapter downloadsAdapter;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_download_);

        setUpRV();
        setUpFB();
        dataFromFirebase();
    }

    private void dataFromFirebase() {
        downdb.collection("Downloads").get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
            @Override
            public void onComplete(@NonNull Task<QuerySnapshot> task) {
                for(DocumentSnapshot documentSnapshot: task.getResult()){

                    Downloadsmodel downloadsmodel= new Downloadsmodel(documentSnapshot.getString("name")
                            ,documentSnapshot.getString("link"),documentSnapshot.getString("fileextension"),documentSnapshot.getString("uploaddate"),documentSnapshot.getString("icon"));
                    downloadsmodelArrayList.add(downloadsmodel);
                }
                downloadsAdapter= new DownloadsAdapter(Download_Activity.this,downloadsmodelArrayList);
                downRecyclerView.setAdapter(downloadsAdapter);
            }
        })

                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                        Toast.makeText(Download_Activity.this,"Error",  Toast.LENGTH_SHORT).show();
                    }
                });

    }

    private void setUpFB() {
        downdb=FirebaseFirestore.getInstance();
    }

    private void setUpRV() {
        downRecyclerView=findViewById(R.id.drecyclerdownloads);
        downRecyclerView.setHasFixedSize(true);
        downRecyclerView.setLayoutManager(new LinearLayoutManager(this));
    }


}


公共类下载\u活动扩展了AppCompatActivity{
FireBaseFireStoreDownDB;
RecyclerView downRecyclerView;
ArrayList downloadsmodelArrayList=新建ArrayList();
下载Sadapter下载Sadapter;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u下载);
setUpRV();
setUpFB();
dataFromFirebase();
}
私有void dataFromFirebase(){
downdb.collection(“Downloads”).get().addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
对于(DocumentSnapshot DocumentSnapshot:task.getResult()){
Downloadsmodel Downloadsmodel=newdownloadsmodel(documentSnapshot.getString(“name”)
,documentSnapshot.getString(“链接”)、documentSnapshot.getString(“文件扩展”)、documentSnapshot.getString(“上传日期”)、documentSnapshot.getString(“图标”);
downloadsmodelArrayList.add(downloadsmodel);
}
downloadsAdapter=新的downloadsAdapter(下载活动。此为downloadsmodelArrayList);
setAdapter(downloadsAdapter);
}
})
.addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常e){
Toast.makeText(下载活动。此“错误”,Toast.LENGTH\u SHORT.show();
}
});
}
私有void setUpFB(){
downdb=FirebaseFirestore.getInstance();
}
私有void setUpRV(){
downRecyclerView=findViewById(R.id.DrecyclerDownload);
downRecyclerView.setHasFixedSize(true);
downRecyclerView.setLayoutManager(新的LinearLayoutManager(this));
}
}
下载适配器


public class DownloadsAdapter extends RecyclerView.Adapter<Downloadsviewholder> {

    Download_Activity download_activity;
    ArrayList<Downloadsmodel> downloadsmodels;

    public DownloadsAdapter(Download_Activity download_activity, ArrayList<Downloadsmodel> downloadsmodels) {
        this.download_activity = download_activity;
        this.downloadsmodels = downloadsmodels;
    }



    @NonNull
    @Override
    public Downloadsviewholder onCreateViewHolder(@NonNull ViewGroup parent, int i) {
        LayoutInflater layoutInflater = LayoutInflater.from(download_activity.getBaseContext());
        View view = layoutInflater.inflate(R.layout.downloads_elements,null,false);
        return new Downloadsviewholder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull final Downloadsviewholder downloadsviewholder, final int i) {
        downloadsviewholder.dName.setText(downloadsmodels.get(i).getName());
        downloadsviewholder.dUploaddate.setText(downloadsmodels.get(i).getUploaddate());
        downloadsviewholder.dExtension.setText(downloadsmodels.get(i).getFileextension());
        Picasso.get().load(downloadsmodels.get(i).getIcon()).into(downloadsviewholder.dIcon);
        downloadsviewholder.dButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                dowloadFile(downloadsviewholder.dName.getContext(),downloadsmodels.get(i).getName(),downloadsmodels.get(i).getFileextension()
                        ,DIRECTORY_DOWNLOADS,downloadsmodels.get(i).getLink());

            }
        });

    }

    public void dowloadFile (Context context,String filename, String fileextension, String destinationdirectory, String url){

        DownloadManager downloadManager=(DownloadManager) context.getSystemService(context.DOWNLOAD_SERVICE);
        Uri uri=Uri.parse(url);
        DownloadManager.Request request=new DownloadManager.Request(uri);
        request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
        request.setDestinationInExternalFilesDir(context, destinationdirectory, filename+fileextension);
        downloadManager.enqueue(request);

    }


    @Override
    public int getItemCount() {
        return downloadsmodels.size();
    }
}


公共类下载适配器扩展了RecyclerView.Adapter{
下载活动下载活动;
ArrayList下载模型;
公共下载适配器(下载活动下载活动,ArrayList downloadsmodels){
this.download\u activity=下载\u activity;
this.downloadsmodels=downloadsmodels;
}
@非空
@凌驾
公开下载ViewHolder onCreateViewHolder(@NonNull ViewGroup父级,int i){
LayoutInflater LayoutInflater=LayoutInflater.from(下载_activity.getBaseContext());
View=LayoutFlater.inflate(R.layout.downloads\u元素,null,false);
返回新下载的viewholder(视图);
}
@凌驾
public void onBindViewHolder(@NonNull final Downloadsviewholder Downloadsviewholder,final int i){
downloadsviewholder.dName.setText(downloadsmodels.get(i.getName());
downloadsviewholder.dUploaddate.setText(downloadsmodels.get(i.getUploaddate());
downloadsviewholder.dExtension.setText(downloadsmodels.get(i.getFileextension());
Picasso.get().load(downloadsmodels.get(i.getIcon()).into(downloadsviewholder.dIcon);
下载viewholder.dButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
dowloadFile(downloadsviewholder.dName.getContext(),downloadsmodels.get(i).getName(),downloadsmodels.get(i).getFileextension()
,目录_下载,下载models.get(i.getLink());
}
});
}
public void dowloadFile(上下文上下文、字符串文件名、字符串文件扩展名、字符串目标目录、字符串url){
下载管理器下载管理器=(下载管理器)context.getSystemService(context.DOWNLOAD\u服务);
Uri=Uri.parse(url);
DownloadManager.Request=新的DownloadManager.Request(uri);
request.setNotificationVisibility(DownloadManager.request.VISIBILITY\u VISIBLE\u NOTIFY\u完成);
setdestinationnexternalfilesdir(上下文、destinationdirectory、文件名+文件扩展名);
downloadManager.enqueue(请求);
}
@凌驾
public int getItemCount(){
返回下载的模型.size();
}
}

使用此功能检查互联网连接

   protected boolean isInternetConnected() {
        ConnectivityManager cm = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo netInfo = cm.getActiveNetworkInfo();
        if (netInfo != null && netInfo.isConnectedOrConnecting()) {
            return true;
        } else {
            return false;
        }
    }

在您的
BindViewHolder中
如下使用:

   downloadsviewholder.dButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                     if(isInternetConnected()){

               dowloadFile(downloadsviewholder.dName.getContext(),downloadsmodels.get(i).getName(),downloadsmodels.get(i).getFileextension()
                        ,DIRECTORY_DOWNLOADS,downloadsmodels.get(i).getLink());
               } else {

                    //Change your button color so it looks like disable if you want 
                }

            }
        });