From e49885003d1672f754ba35eba24f36d61d544665 Mon Sep 17 00:00:00 2001 From: ThankVinci Date: Sat, 12 Jun 2021 23:58:53 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=AE=8C=E6=88=90=E5=88=9B=E5=BB=BAdialog,?= =?UTF-8?q?=E8=83=BD=E4=BC=A0=E5=85=A5=E6=95=B0=E6=8D=AE,=E4=BD=86?= =?UTF-8?q?=E6=98=AF=E7=94=B1=E5=AD=90=E7=BA=BF=E7=A8=8B=E4=BA=A7=E7=94=9F?= =?UTF-8?q?=E7=9A=84=E4=BF=A1=E6=81=AF=E8=BF=98=E4=B8=8D=E8=83=BD=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E5=88=B0=E4=B8=BB=E7=BA=BF=E7=A8=8B=E7=9A=84UI?= =?UTF-8?q?=E4=B8=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CloudKey/Files/FileAdapter.java | 7 +- .../Fragment/UnzipDialogFragment.java | 79 +++++++++++++++++-- .../app/src/main/res/layout/unzip_dialog.xml | 35 +++++++- 开发历程.md | 12 ++- 4 files changed, 123 insertions(+), 10 deletions(-) diff --git a/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Files/FileAdapter.java b/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Files/FileAdapter.java index b2726c1..a8ce379 100644 --- a/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Files/FileAdapter.java +++ b/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Files/FileAdapter.java @@ -78,9 +78,12 @@ public class FileAdapter extends RecyclerView.Adapter { Toast.makeText(v.getContext(),"打开",Toast.LENGTH_SHORT).show(); } }); + String srcFile = builder.toString(); + String desPath = srcFile.substring(0,builder.toString().lastIndexOf(".")); + Bundle data = new Bundle(); - data.putString("srcFile",builder.toString()); - data.putString("desPath",builder.toString().substring(0,builder.toString().lastIndexOf("."))); + data.putString("srcFile",srcFile); + data.putString("desPath",desPath); unzipDialog.setArguments(data); unzipDialog.show(((MainActivity)v.getContext()).getSupportFragmentManager(),"unzip"); diff --git a/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Fragment/UnzipDialogFragment.java b/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Fragment/UnzipDialogFragment.java index b949faa..4c4d526 100644 --- a/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Fragment/UnzipDialogFragment.java +++ b/CloudKey/app/src/main/java/com/thankvinci/CloudKey/Fragment/UnzipDialogFragment.java @@ -2,39 +2,105 @@ package com.thankvinci.CloudKey.Fragment; import android.content.DialogInterface; import android.os.Bundle; +import android.os.Handler; import android.view.LayoutInflater; import android.view.View; +import android.view.ViewGroup; +import android.widget.CheckBox; import android.widget.EditText; +import android.widget.TextView; import android.widget.Toast; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; import com.thankvinci.CloudKey.R; +import com.thankvinci.CloudKey.Utils.FileHandler; +import com.thankvinci.CloudKey.Utils.FileThread; public class UnzipDialogFragment extends DialogFragment { //点击压缩文件弹出来的Dialog private UnzipDialogListener listener; - //源文件绝对路径,目标文件夹绝对路径和密码 - private EditText srcFile_edit; - private EditText desPath_edit; - private EditText passwd_edit; + //源文件绝对路径,目标文件夹绝对路径,md5码和密码 + private EditText srcFile_edit,desPath_edit,md5_edit,passwd_edit; + //用户勾选是否同意将密码上传到数据库 + private CheckBox acceptPWD2SQL; + //用于判断密码来源是否是数据库,是的话勾选checkbox也不会进行上传操作 + private boolean fromSQL; + //点击该文字就连接数据库查找密码 + private TextView getPWD; + //解压的参数 + private String srcFile,desPath,md5,passwd; public interface UnzipDialogListener{ public void onDialogUnzipClicked(); } + @Override + public void onCreate(Bundle savedInstanceState){ + super.onCreate(savedInstanceState); + srcFile = getArguments().getString("srcFile"); + desPath = getArguments().getString("desPath"); + passwd = getArguments().getString("passwd"); + } public void setListener(UnzipDialogListener listener){ this.listener = listener; } - public AlertDialog onCreateDialog(Bundle bundle){ + @Override + public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) { + Toast.makeText(getActivity(),"onCreateView",Toast.LENGTH_SHORT).show(); + return super.onCreateView(inflater, container, savedInstanceState); + + } + + public AlertDialog onCreateDialog(Bundle savedInstanceState){ + Toast.makeText(getActivity(),"onCreateDialog",Toast.LENGTH_SHORT).show(); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); LayoutInflater inflater = requireActivity().getLayoutInflater(); View view = inflater.inflate(R.layout.unzip_dialog,null); + srcFile_edit = view.findViewById(R.id.src_edit); + srcFile_edit.setText(srcFile); + srcFile_edit.setSelection(srcFile.length()); + desPath_edit = view.findViewById(R.id.des_edit); + desPath_edit.setText(desPath); + desPath_edit.setSelection(desPath.length()); + + passwd_edit = view.findViewById(R.id.pwd_edit); + + acceptPWD2SQL = view.findViewById(R.id.accept_pwd_2_sql); + getPWD = view.findViewById(R.id.getpwd); + + acceptPWD2SQL.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (acceptPWD2SQL.isChecked()){ + Toast.makeText(getActivity(),"勾选同意",Toast.LENGTH_SHORT).show(); + //网络线程 + }else{ + Toast.makeText(getActivity(),"取消勾选",Toast.LENGTH_SHORT).show(); + } + } + }); + getPWD.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + //网络线程 + Toast.makeText(getActivity(),"获取密码",Toast.LENGTH_SHORT).show(); + Handler handler = new FileHandler(getActivity()); + Thread ft = new Thread(new FileThread(handler,srcFile,desPath,null,FileHandler.FUNCTION_GET_MD5)); + } + }); + builder.setView(view).setTitle("解压到当前路径").setPositiveButton("解压", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { + if (acceptPWD2SQL.isChecked() && !fromSQL){ + + + } listener.onDialogUnzipClicked(); } }).setNegativeButton("取消", new DialogInterface.OnClickListener() { @@ -45,4 +111,7 @@ public class UnzipDialogFragment extends DialogFragment { });; return builder.create(); } + public void setPasswd(String passwd){ + passwd_edit.setText(passwd); + } } diff --git a/CloudKey/app/src/main/res/layout/unzip_dialog.xml b/CloudKey/app/src/main/res/layout/unzip_dialog.xml index 010551a..1f2ac0b 100644 --- a/CloudKey/app/src/main/res/layout/unzip_dialog.xml +++ b/CloudKey/app/src/main/res/layout/unzip_dialog.xml @@ -24,6 +24,8 @@ android:id="@+id/src_edit" android:textColor="@color/grey" android:focusable="false" + android:singleLine="true" + android:gravity="left" tools:ignore="MissingConstraints" app:layout_constraintLeft_toRightOf="@id/src_text" app:layout_constraintBaseline_toBaselineOf="@id/src_text" @@ -48,11 +50,39 @@ android:id="@+id/des_edit" android:textColor="@color/grey" android:focusable="false" + android:singleLine="true" + android:gravity="left" tools:ignore="MissingConstraints" app:layout_constraintLeft_toRightOf="@id/des_text" app:layout_constraintBaseline_toBaselineOf="@id/des_text" android:layout_marginLeft="5dp" /> + + @@ -71,7 +101,8 @@ android:textSize="14dp" android:id="@+id/pwd_edit" android:textColor="@color/grey" - android:focusable="false" + android:singleLine="true" + android:gravity="left" tools:ignore="MissingConstraints" app:layout_constraintLeft_toRightOf="@id/pwd_text" app:layout_constraintBaseline_toBaselineOf="@id/pwd_text" diff --git a/开发历程.md b/开发历程.md index 50ec5c0..751f9fa 100644 --- a/开发历程.md +++ b/开发历程.md @@ -267,4 +267,14 @@ FileHandler负责将获取到的md5码发到NetThread,然后将得到的密码 改了主题 -添加了一个解压用的dialog \ No newline at end of file +添加了一个解压用的dialog,但是要给dialog传入bundle数据不知道从何下手 + +**2021/6/12** + +我要定义一个dialog,接收一个bundle,但是实例化一个dialog是直接onCreate onCreateDialog onCreateView一套带走的 + +其实很简单,想太复杂了,在dialog创建后,只要不调用show(),onCreate()方法就不会执行,就是在show之前传入数据,在onCreate中收数据就行了 + +**2021/6/12** + +完成了解压缩用的dialog的布局设计,传入数据也有了,但是遇到个问题,就是,一直以来所有的Handler处理的数据我都是直接Toast出去的,如何把数据更新到Dialog,好像把当前fragment/dialogfragment作为参数传进去会方便点 \ No newline at end of file