Java textview to int

Преобразовать число в textview в int

Итак, я возился с программированием на Java/Android, и сейчас я пытаюсь сделать действительно простой калькулятор. Хотя я зациклен на этом вопросе. Это код, который у меня есть прямо сейчас, чтобы получить число, которое находится в текстовом представлении, и сделать его int

CharSequence value1 = getText(R.id.textView); int num1 = Integer.parseInt(value1.toString()); 

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

Я также могу предоставить больше моего кода, если это необходимо

5 ответов

TextView tv = (TextView)findviewbyID(R.id.textView); int num = Integer.valueOf(tv.getText().toString()); 

Вы можете прочитать об использовании TextView.

tv = (TextView) findViewById(R.id.textView); 
tv = new TextView(MyActivity.this); 

Или, если вы раздуваете макет,

tv = (TextView) inflatedView.findViewById(R.id.textView); 

Чтобы установить строку в tv , используйте tv.setText(some_string) или tv.setText(«this_string») . Если вам нужно установить целочисленное значение, используйте tv.setText(«» + 5) , так как setText() — это перегруженный метод, который может обрабатывать строковые и целочисленные аргументы.

Чтобы получить значение из tv , используйте tv.getText() .

Всегда проверяйте, может ли синтаксический анализатор обрабатывать возможные значения, которые может предоставить textView.getText().toString() . NumberFormatException генерируется, если вы пытаетесь проанализировать пустую строку («»). Или, если вы попытаетесь разобрать . .

String tvValue = tv.getText().toString(); if (!tvValue.equals("") && !tvValue.equals(. ))
TextView tv = (TextView)findviewbyID(R.id.textView); String text = tv.getText().toString(); int n; if(text.matches("\\d+")) //check if only digits. Could also be text.matches("5+") < n = Integer.parseInt(text); >else
var value = textview.text.toString().toIntOrNull() ?: 0 

Источник

Как извлечь числа из textview Android Studio

Я хочу только получить текст, а затем использовать оператор if, показанный ниже, для выполнения задачи в зависимости от числа. Любая помощь будет хорошей.

Читайте также:  file downloading in php

4 ответа

Так как вы хотите разрешить алфавитно-цифровые символы, я бы сказал следующее:

 String value = textView.getText().toString(); value = value.trim().replaceAll("[^0-9]","|").replaceAll("(\\D)\\1+","$1"); String values[] = value.trim().split("\\|"); int intValues[] = new int[values.length]; for(int i = 0; i < values.length; i ++)< intValues[i] = Integer.parseInt(values[i]); >//assuming you only care about the first number int number = intValues[0]; if(number == 1)< //do something >else if(number == 2)< //do something else >// etc. 

Первая строка просто получает необработанный текст в ваш ввод. Вторая строка состоит из двух частей, первое, что она делает, это заменяет любые последовательности не цифр (0-9) символов с помощью символа «|». После того, как это сделано, мы возвращаемся и обрезаем любые последовательности труб одной трубой.

Imaging это ваш вклад: 1w22ee333rrr

После первого прохода мы оставляем это как: 1|22||333|||

После второго прохода мы оставляем его как 1|22|333|

Затем мы разделяем и сохраняем значения в массив String, зацикливаемся на этом массиве, анализируем все числа и сохраняем их в целочисленный массив. Это даст вам доступ ко всем вводимым числам, немного излишне, но у меня было время на руках, поэтому я просто дал вам это в качестве опции на случай, если вы найдете другое приложение для этого.

Источник

Вывод в TextView значение из переменной int

как вывести в TextView значение из переменной int? Пробовал функцию toString(), но компилятор говорит что такой метод для int не предназначен.

Вывод значения переменной int и прибавление к ней число по нажатию на кнопку в среде Android Stydio
кто может написать код, который будет по нажатию на кнопку прибавлять 10 к переменной,а потом.

Значение переменной типа int
Я хочу присвоить переменной типа int значение 2147483648, а в gdb я посмотрел значение переменной и.

Читайте также:  Сортировка бинарным деревом python

Вывод переменной типа int на ЖКИ
Есть переменная unsigned int distance_cm. Вывожу на ЖКИ с помощью sprintf (lcd_buffer, "%d".

Максимальное значение переменной типа int
Если тип long в 2 раза больше чем int. Сколько максимум в int? В чём они измеряются в памяти? в.

ЦитатаСообщение от Frai32 Посмотреть сообщение

txtView.setText(Integer.toString(100500));

Добрый день. Вроде бы простой вопрос, и решение здесь изложено, но как.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
package com.example.user.counter; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.TextView; public class MainActivity extends AppCompatActivity { TextView TW; int i=0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TW=findViewById(R.id.Text); TW.setText(Integer.toString(i)); } }

Проще некуда. В TextView выводится значение i — все нормально.

При попытке сделать счетчик приращения приложение крашится после запуска. Код вот такой:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
package com.example.user.counter; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.TextView; import java.util.Timer; import java.util.TimerTask; public class MainActivity extends AppCompatActivity { TextView TW; private Timer mTimer; private TimerTask mMyTimerTask; private int i=0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); counter(); } public void counter() { mTimer = new Timer(); mMyTimerTask = new MyTimerTask(); mTimer.schedule(mMyTimerTask, 1000); } class MyTimerTask extends TimerTask { @Override public void run() { i++; TW=(TextView) findViewById(R.id.Text); TW.setText(Integer.toString(i)); } } }

Крашится именно при попытке вывода TW.setText(Integer.toString(i)); — если ее отключить — крашей нет.

TW.setText(Integer.toString(i));

Источник

Читайте также:  Вывод имени файла python

Обо всём по порядку

Вы славно потрудились, когда создали свою первую переменную. Как видите, нужна всего одна строка. Если хотите увидеть значение переменной, можно вывести её в TextView на экране.

Эспериментировать Java-кодом совершенно естественно, и ничего страшного, если вдруг приложение рухнет.

Свои ответы и вопросы можете оставлять в комментариях.

Java-университет

Поздравляю всех, двигаемся дальше, всё получится! p.s. Очень толковый комментарий от AryehLaert1 на будущее: чем меньше видимость (глобальность) переменных по возможности, тем лучше. Так они не будут висеть в памяти, когда не используются.

Привет! почему в методе displayPrice применен следующий код priceTextView.setText(NumberFormat.getCurrencyInstance().format(number)); Я не дождался урока и написал private void displayPrice(int number)< TextView priceTextView = (TextView) findViewById(R.id.price_text_view); priceTextView.setText("$" + number);

 public void submitOrder(View view)
 package com.example.acerv.justjava; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.TextView; import java.text.NumberFormat; /** * This app displays an order form to order coffee. */ public class MainActivity extends AppCompatActivity < @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); >/** * Тут метод внутренней работы, который производит подсчет и заставляет запустить вывод на экран. У меня показаны рубли, поэтому стоимость кофе 200р */ int numberOrderCoffees = 2; public void submitOrder(View view) < display(numberOrderCoffees); displayPrice(numberOrderCoffees * 200); >/** * Вот тут идет связка для вывода на экран */ private void display(int number) < TextView quantityTextView = (TextView) findViewById(R.id.quantity_text_view); quantityTextView.setText("" + number); >private void displayPrice(int number) < TextView priceTextView = (TextView) findViewById(R.id.price_text_view); priceTextView.setText(NumberFormat.getCurrencyInstance().format(number)); >> 

Источник

Оцените статью