我有以下具有textview和edittext的应用程序。当edittext的值更改时,它会更新textview的内容。现在我希望将值作为整数接收。这是当前的应用程序:
package your.test.two;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
import android.widget.TextView;
public class TesttwoActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
EditText input = (EditText)findViewById(R.id.editText1);
input.addTextChangedListener(new TextWatcher(){
public void afterTextChanged(Editable s){
update();
}
public void beforeTextChanged(CharSequence s, int start, int count, int after){}
public void onTextChanged(CharSequence s, int start, int before, int count){}
});
}
public void update(){
EditText source = (EditText)findViewById(R.id.editText1);
Editable sourceData = source.getText();
TextView destination = (TextView)findViewById(R.id.textView1);
destination.setText(sourceData);
}
}
现在我希望sourceData可编辑以某种方式转换为整数,以便我可以在其上执行if语句,如下所示:
if(sourceData>255){
sourceData = 0;
}
我已经通过在editText1中添加以下行来更改main.xml中edittext的值:
android:inputType="number"
android:maxLength="3"
android:numeric="integer"
有人可以给我一些关于如何做到这一点的指导。谷歌搜索它,但我最终得到的是:
Integer i = Integer.parseInt(edittext.gettext().tostring());
&安培;
Integer i = Integer.valueOf(String s);
我不太了解那些工作或理解它。请帮忙!? :(
答案 0 :(得分:2)
你应该可以使用
Integer i = Integer.parseInt(edittext.gettext().tostring());
通过将您想要设置整数的变量替换为i,在您的情况下为“sourceData”,并将edittext替换为您的edittext框的名称,所以“source”
所以你会得到这样的东西:
public void update(){
EditText source = (EditText)findViewById(R.id.editText1);
Integer sourceData = Integer.parseInt(source.getText().toString());
TextView destination = (TextView)findViewById(R.id.textView1);
destination.setText(Integer.toString(sourceData));
}
}
答案 1 :(得分:1)
即使您可以将EditText的XML中的属性设置为数字,也只是阻止用户输入非数字的其他信息。 EditText中的文本始终为String。不过,您可以将其转换为整数,然后执行您的条件:
public void update() {
EditText source = (EditText)findViewById(R.id.editText1);
int sourceData = Integer.valueOf(source.getText().toString());
if (sourceData > 255) {
sourceData = 0;
}
TextView destination = (TextView)findViewById(R.id.textView1);
destination.setText(Integer.toString(sourceData));
}