2013-03-05 88 views
0

我有一个很容易解决的问题,但我无法在Internet上看到任何教程来帮助我。因为这个问题很基本,所以我认为我没有使用正确的关键字来进行搜索。用户点击后解析EditText输入

我的问题是我解析EditText用的方法和使用此方法来供给的曲线图的值:

public int getSetPoint(){ 
    int setPointRequest = Integer.parseInt(txtSetPoint.getText().toString()); 
    if (setPointRequest > 90 && setPointRequest < 120); 
     return setPointRequest; 
    // ... 
} 

我想解析值仅当setPointRequest()具有91之间的值119并在用户按下在键盘上输入。当提示用户输入一个数值时,只有数字显示在键盘上。

当前用户输入的所有值即使他没有击中输入已注册在图上。

感谢您的帮助! 数学

回答

0
public int getSetPoint(){ 
    int setPointRequest = Integer.parseInt(txtSetPoint.getText().toString()); 
    if(setPointRequest>90 && setPointRequest<120) //notice the lack of ; 
    return setPointRequest; 

    return -1; 
} 

要处理一个回车键:

txtSetPoint.setOnEditorActionListener (new OnEditorActionListener() { 
    @Override 
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) 
    { 
    if (actionId == EditorInfo.IME_NULL) 
     getSetPoint(); 
    return true; 
    } 
}); 

你的第一个问题是if之后的分号。删除。

第二个问题是,在你解决这个问题之后,你将会得到一个编译时错误,因为你需要一个默认的return语句(可以保证执行以防if不行)。我用-1,你可以根据你的需要定制它。我也会把解析放在try/catch中,以避免任何奇怪的错误,但这取决于你。

另外,命名不好,getSetPoint()没有立即从名称中清除,但返回类型和缺少参数确实给出了一个粗略的想法。

+0

此解决方案使我的应用程序崩溃,并没有帮助我与键盘上的“输入”我问。你能否详细说明这个解决方案? – Mathieu660 2013-03-05 00:25:58

+0

@ Mathieu660然后发布你如何调用这个方法。由于'-1'(默认值)被返回,所以很可能会崩溃,而且您不会重新验证输入。至于处理输入按键,你会想要阅读[this](http://stackoverflow.com/questions/1489852/android-handle-enter-in-an-edittext)的答案。但是,您应该制作一个按钮,它更清晰*,*它可以让您轻松处理提交。 – 2013-03-05 00:28:30

+0

实际上我输入了另一个值,因为-1当然会崩溃我的图形。我用了98,但仍然崩溃了我的应用程序。 setPointValue.add(getSetPoint());它被称为那里,它是一个数组 – Mathieu660 2013-03-05 00:36:32

0

结合A - C所说的,我们为您的EditText设置了setOnKeyListener,以便在用户点击回车键时它将只显示文本。

public int getSetPoint(){ 
    int setPointRequest = Integer.parseInt(txtSetPoint.getText().toString()); 
    if(setPointRequest>90 && setPointRequest<120) 
    {return setPointRequest;} 

    else {return -1;} 
} 

txtSetPoint.setOnKeyListener(new OnKeyListener(){ //this method waits for the enter key to be hit 

@Override 
public boolean onKey(View arg0, int arg1, KeyEvent arg2) { 

    switch(arg1) 
    { 
      case KeyEvent.KEYCODE_ENTER: 
       getSetPoint(); //when enter key is hit, call the getSetPoint method 
       return true; 
      default: 
       return false; 

    } 

    } 
});