Это может на самом деле быть сделано довольно легко с чистыми собственными командами, просто необходимо знать, как использовать более хитрых из них. Нет смысла во внешних инструментах как VBScript или противных побочных эффектах как очистка экрана необходимо.
то, Что Вы ищете, является эквивалентом удара" echo -n
" команда, которая производит строку без новой строки. В пакете XP это достигается при помощи" set /p
" (попросите у пользователя ответа с подсказкой) с пустым входом следующим образом:
<nul (set /p junk=Hello)
echo. again.
произведет строку "Привет снова". без прошедшей новой строки.
, Что прием (и использование CTRL-H, символ возврата виден в следующем сценарии тестирования, который запускает (один за другим) 10-секундную подзадачу с 20 вторых тайм-аутов и 15-секундную подзадачу с 10 вторыми тайм-аутами.
сценарий полезной нагрузки создается фактическим под управлением сценарием, и его единственное требование - то, что он делает работу, которую он должен сделать, затем удаляют файл флага по окончании, так, чтобы функция монитора смогла обнаружить его.
Имеют в виду, что строки ^H в этом сценарии являются на самом деле символами CTRL-H, ^ | является двумя отдельными символами, используемыми для выхода из символа вертикальной черты.
@echo off
:: Localise environment.
setlocal enableextensions enabledelayedexpansion
:: Specify directories. Your current working directory is used
:: to create temporary files tmp_*.*
set wkdir=%~dp0%
set wkdir=%wkdir:~0,-1%
:: First pass, 10-second task with 20-second timeout.
del "%wkdir%\tmp_*.*" 2>nul
echo >>"%wkdir%\tmp_payload.cmd" ping 127.0.0.1 -n 11 ^>nul
echo >>"%wkdir%\tmp_payload.cmd" del "%wkdir%\tmp_payload.flg"
call :monitor "%wkdir%\tmp_payload.cmd" "%wkdir%\tmp_payload.flg" 20
:: Second pass, 15-second task with 10-second timeout.
del "%wkdir%\tmp_*.*" 2>nul:
echo >>"%wkdir%\tmp_payload.cmd" ping 127.0.0.1 -n 16 ^>nul
echo >>"%wkdir%\tmp_payload.cmd" del "%wkdir%\tmp_payload.flg"
call :monitor "%wkdir%\tmp_payload.cmd" "%wkdir%\tmp_payload.flg" 10
goto :final
:monitor
:: Create flag file and start the payload minimized.
echo >>%2 dummy
start /min cmd.exe /c "%1"
:: Start monitoring.
:: i is the indicator (0=|,1=/,2=-,3=\).
:: m is the number of seconds left before timeout.
set i=0
set m=%3
<nul (set /p z=Waiting for child to finish: ^|)
:: Loop here awaiting completion.
:loop
:: Wait one second.
ping 127.0.0.1 -n 2 >nul
:: Update counters and output progress indicator.
set /a "i = i + 1"
set /a "m = m - 1"
if %i% equ 4 set i=0
if %i% equ 0 <nul (set /p z=^H^|)
if %i% equ 1 <nul (set /p z=^H/)
if %i% equ 2 <nul (set /p z=^H-)
if %i% equ 3 <nul (set /p z=^H\)
:: End conditions, complete or timeout.
if not exist %2 (
echo.
echo. Complete.
goto :final
)
if %m% leq 0 (
echo.
echo. *** ERROR: Timed-out waiting for child.
goto :final
)
goto :loop
:final
endlocal
Дело в том, что вы должны перебирать все элементы представления списка, но не проверенные позиции.
Определите переменные:
saveCheckedName (сохранить все проверенные имена в этом Arraylist)
SparseBooleanArray checkedPositions = listView.getCheckedItemPositions();
for (int i = 0; i < subjectListView.getCount(); i++) {
if (checkedPositions.get(i) == true) {
saveCheckedName.add(names.get(i));
}
}
Очень просто, используйте код ниже
listViewRequests.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
AppCompatCheckedTextView checkBox = (AppCompatCheckedTextView) view;
if (checkBox.isChecked() == true){
Log.i("CHECK",checkBox.isChecked()+""+checkBox.getText().toString());
}
}
});