Skip to content

Commit 6f98104

Browse files
committed
不同设备下文件选择工具的适配问题解决
1 parent 5a70072 commit 6f98104

File tree

4 files changed

+47
-32
lines changed

4 files changed

+47
-32
lines changed

.idea/gradle.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/src/main/java/com/ichtj/basetools/MainActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -484,7 +484,7 @@ public void onItemClick(int position, String itemText) {
484484
public void onFileSelected(List<File> selected) {
485485
Log.d(TAG, "onFileSelected: "+selected);
486486
}
487-
}).setSizeRatio(0.3f,0.5f,30).setSingleSelect(true).show();
487+
}).setSizeRatio(0.3f,0.5f,30).setSingleSelect(false).show();
488488
break;
489489
case FKey.KEY_LOADDING_DIALOG:
490490
List<Integer> pngList = new ArrayList<>();

base_iotutils/src/main/java/com/face_chtj/base_iotutils/FileDialogSelectUtils.java

Lines changed: 44 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -147,33 +147,12 @@ public void onClick(View v) {
147147

148148
rootLayout.addView(buttonLayout);
149149

150-
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
151-
@Override
152-
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
153-
File item = fileList.get(position);
154-
if (EMPTY_PLACEHOLDER.equals(item.getName())) return;
155-
156-
if ("..".equals(item.getName())) {
157-
currentDir = currentDir.getParentFile();
158-
FileDialogSelectUtils.this.refreshFileList();
159-
} else if (item.isDirectory()) {
160-
currentDir = item;
161-
FileDialogSelectUtils.this.refreshFileList();
162-
} else {
163-
if (singleSelect) {
164-
selectedFiles.clear();
165-
selectedFiles.add(item);
166-
} else {
167-
if (selectedFiles.contains(item)) {
168-
selectedFiles.remove(item);
169-
} else {
170-
selectedFiles.add(item);
171-
}
172-
}
173-
adapter.notifyDataSetChanged();
174-
}
175-
}
176-
});
150+
// listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
151+
// @Override
152+
// public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
153+
// notifyViewChange(position);
154+
// }
155+
// });
177156

178157
AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.CustomDialogStyle);
179158
builder.setView(rootLayout);
@@ -183,6 +162,31 @@ public void onItemClick(AdapterView<?> parent, View view, int position, long id)
183162
refreshFileList();
184163
}
185164

165+
private void notifyViewChange(final int position) {
166+
File item = fileList.get(position);
167+
if (EMPTY_PLACEHOLDER.equals(item.getName())) return;
168+
169+
if ("..".equals(item.getName())) {
170+
currentDir = currentDir.getParentFile();
171+
FileDialogSelectUtils.this.refreshFileList();
172+
} else if (item.isDirectory()) {
173+
currentDir = item;
174+
FileDialogSelectUtils.this.refreshFileList();
175+
} else {
176+
if (singleSelect) {
177+
selectedFiles.clear();
178+
selectedFiles.add(item);
179+
} else {
180+
if (selectedFiles.contains(item)) {
181+
selectedFiles.remove(item);
182+
} else {
183+
selectedFiles.add(item);
184+
}
185+
}
186+
adapter.notifyDataSetChanged();
187+
}
188+
}
189+
186190
private void refreshFileList() {
187191
fileList.clear();
188192

@@ -303,7 +307,7 @@ public long getItemId(int position) {
303307
}
304308

305309
@Override
306-
public View getView(int position, View convertView, ViewGroup parent) {
310+
public View getView(final int position, View convertView, ViewGroup parent) {
307311
File file = fileList.get(position);
308312
LinearLayout layout = new LinearLayout(context);
309313
layout.setOrientation(LinearLayout.HORIZONTAL);
@@ -317,6 +321,12 @@ public View getView(int position, View convertView, ViewGroup parent) {
317321
nameView.setTextSize(TypedValue.COMPLEX_UNIT_SP, itemTvSize);
318322
nameView.setLayoutParams(new LinearLayout.LayoutParams(
319323
0, ViewGroup.LayoutParams.WRAP_CONTENT, 1));
324+
layout.setOnClickListener(new View.OnClickListener() {
325+
@Override
326+
public void onClick(View v) {
327+
notifyViewChange(position);
328+
}
329+
});
320330

321331
if (EMPTY_PLACEHOLDER.equals(file.getName())) {
322332
nameView.setText(R.string.not_found_file_child_content);
@@ -330,7 +340,12 @@ public View getView(int position, View convertView, ViewGroup parent) {
330340
if (!file.isDirectory() && !file.getName().equals("..")) {
331341
CheckBox checkBox = new CheckBox(context);
332342
checkBox.setChecked(selectedFiles.contains(file));
333-
checkBox.setEnabled(false);
343+
checkBox.setOnClickListener(new View.OnClickListener() {
344+
@Override
345+
public void onClick(View v) {
346+
notifyViewChange(position);
347+
}
348+
});
334349
checkBox.setButtonDrawable(R.drawable.custom_checkbox);
335350

336351
// 设置右边距(比如 20dp)

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,4 @@ allprojects {
3333
task clean(type: Delete) {
3434
delete rootProject.buildDir
3535
}
36-
apply from: "config.gradle"
36+
apply from: "config.gradle"

0 commit comments

Comments
 (0)