我制作了一个FTP / FileBrowser活动,让用户单击一个目录导航到它,但是我想进行双击,因为列表是一个多选项,用于批量删除,下载等。我创建了一个名为remclickcount的int var,每次单击一个列表项时都会实现++,但是如果单击“目录A”两次,它就可以正常工作。但是,如果单击目录A,然后单击目录B,它将导航到目录B.如何计算单个目录的单击?
remote.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
r_itla.setSelectedPosition(position);
String selectedFile = r_directoryEntries.get(position)
.getText();
boolean isDirectory = map.get(selectedFile).booleanValue();
if (isDirectory){
remclickcount++;
if(remclickcount==2) {
r_directoryEntries.clear();
r_itla.notifyDataSetChanged();
ftpPrintFilesList(selectedFile);
try {
FTPHelper.mFTPClient
.changeWorkingDirectory(selectedFile.toString());
remclickcount=0;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} else if (!isDirectory) {
// Toast.makeText(FTPConnector.this, selectedFile,
// Toast.LENGTH_LONG).show();
currentRemoteFile = selectedFile;
}
}
});
工作代码:
remote.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
r_itla.setSelectedPosition(position);
String selectedFile = r_directoryEntries.get(position)
.getText();
boolean isDirectory = map.get(selectedFile).booleanValue();
if (isDirectory){
if(selectedFile.equals(lastClickSelectedFile)) {
r_directoryEntries.clear();
r_itla.notifyDataSetChanged();
ftpPrintFilesList(selectedFile);
try {
FTPHelper.mFTPClient
.changeWorkingDirectory(selectedFile.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else if(!selectedFile.equals(lastClickSelectedFile)){
lastClickSelectedFile = selectedFile;
}
} else if (!isDirectory) {
// Toast.makeText(FTPConnector.this, selectedFile,
// Toast.LENGTH_LONG).show();
currentRemoteFile = selectedFile;
}
}
});
答案 0 :(得分:2)
我可以假设,如果用户点击目录A,那么在目录B上,然后是目录A,不会计算为双击?如果这是正确的,那么你真的不想计算每个文件的点击次数。我要做的是在你的班级lastClickSelectedFile
中定义一个私人String成员。然后,如果他们点击目录:如果selectedFile.equals(lastClickSelectedFile)
,则用户双击。否则,请设置lastClickSelectedFile = selectedFile
,不要采取任何操作。如果用户点击了其他内容,请设置lastClickSelectedFile = null
。如果这不能满足您的需求,请澄清。