2012-02-21 76 views
1

對於初學者,任何幫助將不勝感激!我創建了一個數字小鍵盤,每次選擇其中一個按鈕時,都需要將數值傳遞給EditText。我遇到了一個問題,即EditText被setText覆蓋,每次按下不同的按鈕。我真的需要連接每個值,我不太確定如何做到這一點。任何一個到九個按鈕都可以按任意順序按下。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。

在你的類的身體,你應該申報EditText editText;,然後在onCreate,你應該在onClickeditText = (EditText)findViewById(R.id.Edit);

然後,就這樣做:

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

這應該簡化代碼,使其更易於管理,因爲您不必重複重新創建EditText,所以使用的資源稍少一些。

+1

嘿,男士,感謝您的快速反應。我實施了你的建議,我已經有了它的工作。非常感謝您的詳細解答。不夠感謝你。 – Abs90 2012-02-22 01:23:33

+0

不客氣。 :) – Jakar 2012-02-22 01:30:09