我正在describe('Qlik Dashboard Test', function () {
it('Primary Filter Testing', async function () {
// await browser.waitForAngularEnabled(false);
var url = 'https://sense-demo.qlik.com/sso/sense/app/dcb7c95a-9ecd-43e2-8786-cae00108a324/sheet/54b60312-68c5-4d92-a225-79326b68ad5a/state/analysis';
var EC = protractor.ExpectedConditions;
// Reference to all filters
var filters = element.all(by.css('.title-wrapper'));
// Reference to backbutton
var bb = element.all(by.className('lui-clear-all lui-icon lui-icon--remove'));
// Go to website
await browser.get(url);
await browser.driver.sleep(15000);
// Wait for all filters to be visible
let numFilter = await filters.count();
console.log(numFilter);
for (let i = 0; i < numFilter; i++) {
await filters.get(i).click();
// Reference to first option in each filter
// let first_opt = element(by.repeater('textItem in item.textItems')).row(1);
// await browser.wait(EC.visibilityOf(first_opt, 15000));
// await first_opt.click();
await browser.driver.sleep(5000);
}
}
}
上工作,我必须在EdituserProfileActivity
中输入用户的身高,例如(5'6)(5'11)(feet'inch。)等。现在,当我输入EditText
中的第一个字符,单撇号EditText
会自动添加到'
的第二个位置的(onTextChanged
)上。
问题是,当我尝试擦除字符时,它不会在第一个位置之后擦除,因为当EditText
的长度为1时,它将在第二个位置添加一个EditText
。
我该如何解决?请与我分享任何解决方案。
对不起,我英语不好
'
答案 0 :(得分:0)
我相信您正在寻找这样的支票:
if (before == 1 && s.length() == start) {
return; // allows delete
}
这将允许您在操作中执行传递。因此您的代码将如下所示:
public void onTextChanged(CharSequence s, int start, int before, int count) {
String height = edtUserHeight.getText().toString();
if(height.length() == 1) {
edtUserHeight.setText(height + "'");
}
if (before == 1 && s.length() == start) {
return; // allows delete
}else{
edtUserHeight.setSelection(height.length());
}
}
有关before和start参数含义的更多信息,请查看this答案。