2011-12-27 15 views
0

私は、textviewとedittextを持つ次のアプリを持っています。 edittextの値が変更されると、textviewの内容が更新されます。今度は値を整数として受け取るようにします。
Android EditText 10進整数値

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); 
} 
} 


は今、私はそれにif文私が行うことができるように、次のようにsourceData編集可能で何とか整数に変換したい:これは、現在のアプリです

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); 

そして、私はかなりのものはそれを仕事や理解を得ることはありません。助けてください!? :

答えて

2

あなたがに、あなたが整数を設定したい変数と私を置き換えることによって

Integer i = Integer.parseInt(edittext.gettext().tostring()); 

を使用することができるはずですあなたのケース「sourceData」、および

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)); 
} 
} 
+0

Aaah thanxみんな!そのコードのビットは、私が探していたものでした! destination.setText(Integer.toString(sourceData)); 本当に助けてくれました。ありがとう! – Anomaly

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)); 
} 
+0

あーのありがとうの男:

だからあなたはこのような何かを取得したいあなたのEditTextボックスの名前でのEditTextを交換するので、「ソース」!そのコードのビットは、私が探していたものでした! destination.setText(Integer.toString(sourceData)); 本当に助けてくれました。ありがとう! – Anomaly