Google Android - это несложно

Добро пожаловать на форум сайта startandroid.ru
Текущее время: 20 ноя 2018, 18:36

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: OnKeyListener
СообщениеДобавлено: 16 сен 2018, 13:45 

Зарегистрирован: 15 сен 2018, 16:51
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Здравствуйте. написал программу, которая в режиме редактирования EditText сразу расчитывает результат и выводит его в TextView. В симуляторе работает отлично, закидываю на смартфон, и при вводе числа(цифр с тачклавиатуры), расчет не производит. помогите разобраться что не так(я прошел пока что 16 уроков)а срабатывает только тогда, когда я тапаю на энтер(на смартфоне)
Код: [ Загрузить ] [ Скрыть ]
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     xmlns:app="http://schemas.android.com/apk/res-auto" 
  4.     xmlns:tools="http://schemas.android.com/tools" 
  5.     android:layout_width="match_parent" 
  6.     android:layout_height="match_parent" 
  7.     tools:context=".MainActivity"> 
  8.  
  9.     <TextView 
  10.         android:layout_width="wrap_content" 
  11.         android:layout_height="wrap_content" 
  12.         android:text="Hello World!" 
  13.         android:id="@+id/tekst" 
  14.         app:layout_constraintBottom_toBottomOf="parent" 
  15.         app:layout_constraintLeft_toLeftOf="parent" 
  16.         app:layout_constraintRight_toRightOf="parent" 
  17.         app:layout_constraintTop_toTopOf="parent" /> 
  18.  
  19.     <Button 
  20.         android:id="@+id/button" 
  21.         android:layout_width="wrap_content" 
  22.         android:layout_height="wrap_content" 
  23.         android:layout_marginLeft="8dp" 
  24.         android:layout_marginStart="8dp" 
  25.         android:layout_marginTop="8dp" 
  26.         android:text="Button" 
  27.         app:layout_constraintStart_toStartOf="parent" 
  28.         app:layout_constraintTop_toBottomOf="@+id/tekst" /> 
  29.  
  30.     <EditText 
  31.         android:id="@+id/editText" 
  32.         android:layout_width="wrap_content" 
  33.         android:layout_height="wrap_content" 
  34.         android:layout_marginLeft="8dp" 
  35.         android:layout_marginStart="8dp" 
  36.         android:layout_marginTop="8dp" 
  37.         android:ems="10" 
  38.         android:inputType="number|numberDecimal" 
  39.         app:layout_constraintStart_toStartOf="parent" 
  40.         app:layout_constraintTop_toBottomOf="@+id/editText2" /> 
  41.  
  42.     <EditText 
  43.         android:id="@+id/editText2" 
  44.         android:layout_width="wrap_content" 
  45.         android:layout_height="wrap_content" 
  46.         android:layout_marginEnd="8dp" 
  47.         android:layout_marginRight="8dp" 
  48.         android:layout_marginTop="8dp" 
  49.         android:ems="10" 
  50.         android:inputType="numberDecimal" 
  51.         app:layout_constraintEnd_toEndOf="parent" 
  52.         app:layout_constraintTop_toTopOf="parent" /> 
  53.  
  54. </android.support.constraint.ConstraintLayout> 

а вот сам код явы
Код: [ Загрузить ] [ Скрыть ]
  1. package com.example.summa2; 
  2.  
  3. import android.support.v7.app.AppCompatActivity; 
  4. import android.os.Bundle; 
  5. import android.text.TextUtils; 
  6. import android.view.KeyEvent; 
  7. import android.view.View; 
  8. import android.widget.Button; 
  9. import android.widget.EditText; 
  10. import android.widget.TextView; 
  11. import android.widget.Toast; 
  12.  
  13. public class MainActivity extends AppCompatActivity { 
  14.  
  15.     Button button; 
  16.     TextView tekst; 
  17.     EditText editText; 
  18.     EditText editText2; 
  19.  
  20.     int num1 = 0; 
  21.     int num2 = 0; 
  22.     int result = 0; 
  23.     int vlag = 0; 
  24.     int [][] cats = { 
  25.             {90,81,71,63,54,0,0,0,0,0,0},//20 
  26.             {90,81,72,64,55,47,0,0,0,0,0},//21 
  27.             {91,82,73,64,56,48,41,0,0,0,0},//22 
  28.             {91,82,74,65,58,50,42,0,0,0,0},//23 
  29.             {91,83,74,66,59,51,44,0,0,0,0},//24 
  30.             {91,83,75,67,60,52,45,38,0,0,0},//25 
  31.             {92,84,76,69,61,54,49,41,35,29,23},//26 
  32.             {92,84,77,69,62,55,50,43,36,30,25},//27 
  33.             {92,84,77,70,63,56,51,44,38,32,27},//28 
  34.             {92,85,78,71,64,57,52,45,39,34,28},//29 
  35.             {92,85,78,71,65,58,53,56,41,35,30},//30 
  36.             {93,85,78,72,65,59,54,47,42,36,31},// 31 
  37.             {93,86,79,72,66,60,55,48,43,38,33},// 32 
  38.             {93,86,79,73,67,61,56,49,44,39,34},// 33 
  39.             {0,86,80,73,67,61,57,50,45,40,35},// 34 
  40.             {0,86,80,74,68,62,57,51,46,41,36},// 35 
  41.             {0,87,80,74,68,63,58,52,47,42,38},// 36 
  42.             {0,87,81,75,69,63,59,53,48,43,39},// 37 
  43.             {0,87,81,75,70,64,59,54,49,44,40},// 38 
  44.             {0,87,81,76,70,65,60,55,50,45,41},// 39 
  45.             {0,88,82,76,70,65,61,55,51,46,42},// 40 
  46.     }; 
  47.  
  48.     @Override 
  49.     protected void onCreate(Bundle savedInstanceState) { 
  50.         super.onCreate(savedInstanceState); 
  51.         setContentView(R.layout.activity_main); 
  52.         button = (Button) findViewById(R.id.button); 
  53.  
  54.         tekst = (TextView) findViewById(R.id.tekst); 
  55.         editText = (EditText) findViewById(R.id.editText); 
  56.         editText2 = (EditText) findViewById(R.id.editText2); 
  57.  
  58.  
  59.  
  60.         View.OnClickListener oclbutton = new View.OnClickListener() { 
  61.             @Override 
  62.             public void onClick(View v) { 
  63.  
  64.               /*  // Проверяем поля на пустоту 
  65.                 if (TextUtils.isEmpty(editText.getText().toString())){num1  =0 ;} 
  66.                 else{num1 = Integer.parseInt(editText.getText().toString());} 
  67.                      if( TextUtils.isEmpty(editText2.getText().toString())) { num2 = 0; } 
  68.                      else{num2 = Integer.parseInt(editText2.getText().toString());} 
  69.                 // TODO Auto-generated method stub 
  70.                 result = num1 + num2 ; 
  71.                 tekst.setText( ""+result);*/ 
  72.               //  Toast.makeText(this, "добавить", Toast.LENGTH_SHORT).show(); 
  73.                 result = cats[0][1]; 
  74.  
  75.                 tekst.setText( ""+result); 
  76.             } 
  77.         }; 
  78.         View.OnKeyListener oclEdit = new View.OnKeyListener() { 
  79.             @Override 
  80.             public boolean onKey(View v, int keyCode, KeyEvent event) { 
  81.  
  82.                 // Проверяем поля на пустоту 
  83.                 if (TextUtils.isEmpty(editText.getText().toString())){num1  =0 ;} 
  84.                 else{num1 = Integer.parseInt(editText.getText().toString());} 
  85.                 if( TextUtils.isEmpty(editText2.getText().toString())) { num2 = 0; } 
  86.                 else{num2 = Integer.parseInt(editText2.getText().toString());} 
  87.                 // TODO Auto-generated method stub 
  88.                 result =  num2 - num1 ; 
  89.                 if(result<12&&result>0){vlag = cats[num2-20][result-1];} 
  90.                 else {vlag = 0;} 
  91.                 tekst.setText( vlag+"%"); 
  92.                 return false; 
  93.             } 
  94.  
  95.         }; 
  96.  
  97.         View.OnClickListener oclEdit1 = new View.OnClickListener() { 
  98.             @Override 
  99.             public void onClick(View v) { 
  100.                 // Проверяем поля на пустоту 
  101.                 if (TextUtils.isEmpty(editText.getText().toString())){num1  =0 ;} 
  102.                 else{num1 = Integer.parseInt(editText.getText().toString());} 
  103.                 if( TextUtils.isEmpty(editText2.getText().toString())) { num2 = 0; } 
  104.                 else{num2 = Integer.parseInt(editText2.getText().toString());} 
  105.                 // TODO Auto-generated method stub 
  106.                 result =  num2 - num1 ; 
  107.                 if(result<12&&result>0){vlag = cats[num2-20][result-1];} 
  108.                 else {vlag = 0;} 
  109.                 tekst.setText( vlag+"%"); 
  110.  
  111.  
  112.             } 
  113.         }; 
  114.  
  115.         button.setOnClickListener(oclbutton); 
  116.        editText.setOnKeyListener(oclEdit); 
  117.         editText.setOnClickListener(oclEdit1); 
  118.         //editText.setOnEditorActionListener(oclEdit2); 
  119.  
  120.  
  121.     } 
  122.  
  123.  


это программа для расчета влажности по показаниям сухого и влажного термометра(для проверки в верхнее едит число 20 в нижнее число 17, и должен высветиться результат 71%


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB