嘿家伙们对Android工作室很新,就像标题说我试图将EditText中的文本放入名为" username"我希望能够在我的内部课程中使用,但我不知道如何从内部访问它。
这是我在onCreate中使用EditText做的事情:( KeyListener是我内部类的名称)
public class KeyListener implements View.OnKeyListener
{
@Override
public boolean onKey(View view, int keyCode, KeyEvent keyEvent)
{
if (keyCode == KeyEvent.KEYCODE_AT)
{
Toast.makeText(MainActivity.this, "Do not type @", Toast.LENGTH_LONG).show();
}
//if the enter key is pressed, then check to see if username is 8 or more chars
if (keyCode == keyEvent.KEYCODE_ENTER)
{
//if it is, display it
if(username.length => 8)
{
Toast.makeText(MainActivity.this, "Hi, " + username, Toast.LENGTH_LONG).show();
}else //else, ask for a username of atleast 8 chars
{
Toast.makeText(MainActivity.this, "Please enter a username that is 8 or more chars", Toast.LENGTH_LONG).show();
}
}
return false;
}
}
这就是我在内心阶层所要做的事情:
public void longClick( String element ) {
// TODO Auto-generated method stub
WebElement webElement = appiumDriver.findElement(By.xpath(element));
TouchAction Action = new TouchAction(appiumDriver);
Action.longPress(webElement).release().perform();
}
但它表示"无法解析符号'用户名'"我无法访问" input_text"在那个班级内如此,如果有人可以帮助我在这里,我将不胜感激, 在此先感谢:)
答案 0 :(得分:1)
如果你想存储EditText的值,你需要用你的监听器来更新它,为什么要使用KeyListener,为什么不是像这篇文章中的TextWatcher here
编辑:
你应该做那样的事情
input_text.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged (Editable s){
username = s.toString();
}
@Override
public void beforeTextChanged (CharSequence s,int start,
int count, int after){
}
@Override
public void onTextChanged (CharSequence s,int start,
int before, int count){
}
});
TextWatcher是Design Pattern Observer的一个实现,因此每当有人使用EditText时,这个代码就会变成triger,你必须通过在TextWatcher中执行你的逻辑来处理这个问题,比如调用服务或负责处理用户名的其他东西。