Пользовательский ввод Android, используя пользовательскую клавиатуру - PullRequest
1 голос
/ 22 февраля 2012

Для начала, любая помощь будет принята с благодарностью!Я создал цифровую клавиатуру, и мне нужно передавать числовые значения в EditText каждый раз, когда выбирается одна из кнопок.Я сталкиваюсь с проблемой, когда EditText перезаписывается setText, каждый раз, когда нажимается другая кнопка.Мне действительно нужно объединить каждое значение, и я не совсем уверен, как это сделать.Любая из девяти или девяти кнопок может быть нажата в любом порядке.

Вот часть кода.Я просто пытаюсь заставить эти ключи работать сначала.

    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  
android:id="@+id/Edit"  
android:layout_height="wrap_content"    
android:inputType="number"  
android:layout_width="fill_parent"
android:numeric="integer">  
</EditText> 

1 Ответ

1 голос
/ 22 февраля 2012

Попробуйте:

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...