2012-02-21 19 views
1

まずは、どんな助力も大歓迎です!私は数値キーパッドを作成しており、ボタンの1つが選択されるたびに数値をEditTextに渡す必要があります。私は、異なるボタンが押されるたびに、EditTextがsetTextによって上書きされるという問題に遭遇しています。私は本当にそれぞれの値を連結する必要があります、そして、私はこれをどうやって行うのかについてはあまりよく分かりません。 1つから9つのボタンのいずれかを任意の順序で押すことができます。Androidのユーザー入力、カスタムキーパッドを使用

ここにいくつかのコードを示します。私はちょうどこれらのキーを最初に働かせようとしています。

View hash = findViewById(R.id.keypad_hash); 
    hash.setOnClickListener(this); 
    View key1 = findViewById(R.id.keypad_1); 
    key1.setOnClickListener(this); 
    View key2 = findViewById(R.id.keypad_2); 
    key2.setOnClickListener(this); 

} 




@Override 
public void onClick(View v){ 
switch(v.getId()){ 
case R.id.keypad_hash: 
    questions(); 
    break; 

case R.id.keypad_1: 

    final EditText number_edit_text1 = (EditText) this.findViewById(R.id.Edit); 
     number_edit_text1.setText(String.valueOf("1")); 




     break; 


case R.id.keypad_2: 

    final EditText number_edit_text2 = (EditText) this.findViewById(R.id.Edit); 
     number_edit_text2.setText(String.valueOf("2")); 
    break; 

} 
} 

、その後、レイアウトでのEditText

<EditText 
android:id="@+id/Edit" 
android:layout_height="wrap_content"  
android:inputType="number" 
android:layout_width="fill_parent" 
android:numeric="integer"> 
</EditText> 

答えて

1

試してみてください。

number_edit_text2.append(String.valueOf("2")); 

それが何らかの理由で動作しない場合:

number_edit_text2.setText(number_edit_text2.getText().toString()+String.valueOf("2")); 

また、上副作用、あなたはあなたのプロセスをより簡単にすることができます自己。あなたのXMLで

は、あなたが実行する必要があります。

android:tag="0" 

と、各ボタンに好きな番号を0に置き換えます。あなたのクラス本体で

、あなたは onClickに続いて editText = (EditText)findViewById(R.id.Edit);

を行う必要があり、onCreateで、その後、EditText editText;を宣言する必要があり、ちょうど行います

editText.append(String.valueOf(v.getTag())); 

これは、あなたのコードを簡素化することが、より管理しやすくする必要がありますEditTextを繰り返し再作成する必要がないので、リソースを少し少なくすることができます。

+1

こんにちは、お返事ありがとうございました。私はあなたの推薦を実装し、私はそれが働いている。あなたの詳細な答えを本当にありがとう。十分にあなたに感謝することはできません。 – Abs90

+0

ようこそ。 :) – Jakar

関連する問題