2012-02-21 1 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

Try:

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, вы должны сделать editText = (EditText)findViewById(R.id.Edit);

Тогда в onClick, просто сделать:

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

Это должно упростить код, сделать его более управляемым , и использовать все так немного меньше ресурсов, так как вам не нужно многократно воссоздавать EditText.

+1

Эй, человек, спасибо за быстрый ответ. Я выполнил ваши рекомендации, и у меня это работает. Очень ценю ваш подробный ответ. Не могу вас поблагодарить. – Abs90

+0

Добро пожаловать. :) – Jakar

 Смежные вопросы

  • Нет связанных вопросов^_^