Вопрос по TextView Random

Интерфейс, диалоги, темы, стили, меню
Ответить
Аватара пользователя
beks000
Сообщения: 75
Зарегистрирован: 26 апр 2013, 18:15
Контактная информация:

Вопрос по TextView Random

Сообщение beks000 » 02 ноя 2013, 16:44

Здравствуйте

Хочу вытащить любое число от 1го до 9, запускаю, нажимаю Generate, вылетает

Код:
[syntax=java5]
public class MathActivity extends Activity {

TextView Random1;
Button button1;
Random random = new Random();


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.math);

Random1 = (TextView) findViewById(R.id.random1);
button1 =(Button) findViewById(R.id.button1);

OnClickListener oclBtnRandom = new OnClickListener(){


public void onClick(View v) {
int num = random.nextInt(9) + 1;
Random1.setText(num);
}
};
button1.setOnClickListener(oclBtnRandom);
}
}

[/syntax]

Logcat
[syntax=0]
11-02 18:29:32.849: W/ResourceType(3366): No package identifier when getting value for resource number 0x00000002
11-02 18:29:32.849: D/AndroidRuntime(3366): Shutting down VM
11-02 18:29:32.849: W/dalvikvm(3366): threadid=1: thread exiting with uncaught exception (group=0x40018560)
11-02 18:29:32.849: E/AndroidRuntime(3366): FATAL EXCEPTION: main
11-02 18:29:32.849: E/AndroidRuntime(3366): android.content.res.Resources$NotFoundException: String resource ID #0x2
11-02 18:29:32.849: E/AndroidRuntime(3366): at android.content.res.Resources.getText(Resources.java:208)
11-02 18:29:32.849: E/AndroidRuntime(3366): at android.widget.TextView.setText(TextView.java:2863)
11-02 18:29:32.849: E/AndroidRuntime(3366): at com.beksultan.math.metrics.MathActivity$1.onClick(MathActivity.java:33)
11-02 18:29:32.849: E/AndroidRuntime(3366): at android.view.View.performClick(View.java:2506)
11-02 18:29:32.849: E/AndroidRuntime(3366): at android.view.View$PerformClick.run(View.java:9112)
11-02 18:29:32.849: E/AndroidRuntime(3366): at android.os.Handler.handleCallback(Handler.java:587)
11-02 18:29:32.849: E/AndroidRuntime(3366): at android.os.Handler.dispatchMessage(Handler.java:92)
11-02 18:29:32.849: E/AndroidRuntime(3366): at android.os.Looper.loop(Looper.java:130)
11-02 18:29:32.849: E/AndroidRuntime(3366): at android.app.ActivityThread.main(ActivityThread.java:3835)
11-02 18:29:32.849: E/AndroidRuntime(3366): at java.lang.reflect.Method.invokeNative(Native Method)
11-02 18:29:32.849: E/AndroidRuntime(3366): at java.lang.reflect.Method.invoke(Method.java:507)
11-02 18:29:32.849: E/AndroidRuntime(3366): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864)
11-02 18:29:32.849: E/AndroidRuntime(3366): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
11-02 18:29:32.849: E/AndroidRuntime(3366): at dalvik.system.NativeStart.main(Native Method)

[/syntax]


Что здесь неправильно? Вроде бы все нормально

Аватара пользователя
trew
Сообщения: 450
Зарегистрирован: 28 сен 2013, 17:34

Re: Вопрос по TextView Random

Сообщение trew » 02 ноя 2013, 17:00

[syntax=java]int num = random.nextInt(9) + 1;
String aaa = String.valueOf(num);
Random1.setText(aaa);[/syntax]
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.

Аватара пользователя
beks000
Сообщения: 75
Зарегистрирован: 26 апр 2013, 18:15
Контактная информация:

Re: Вопрос по TextView Random

Сообщение beks000 » 02 ноя 2013, 17:22

Ах, да, спасибо, работает!

Аватара пользователя
beks000
Сообщения: 75
Зарегистрирован: 26 апр 2013, 18:15
Контактная информация:

Re: Вопрос по TextView Random

Сообщение beks000 » 02 ноя 2013, 18:18

У меня есть строки в котором я получаю ответ присвоения X НА Y

[syntax=java]String who = Edittext1.getText().toString();
String wh = rand1 + rand2;
if (who.equals(wh))
image.setImageResource(R.drawable.ic_true);
else
image.setImageResource(R.drawable.not);
break;[/syntax]

Проблема в том что оно не присваивает, например 9 + 1, должно выводить 10, а он 91 выводит

Не знаю как обратиться к сложением именно к числам, может поможете?

WizikTLT
Сообщения: 52
Зарегистрирован: 01 ноя 2013, 13:30

Re: Вопрос по TextView Random

Сообщение WizikTLT » 02 ноя 2013, 18:30

например
int wh = Integer.parseInt(rand1) + Integer.parseInt(rand2) - рез-т будет 10
а потом опять к строке преобразовать

Аватара пользователя
beks000
Сообщения: 75
Зарегистрирован: 26 апр 2013, 18:15
Контактная информация:

Re: Вопрос по TextView Random

Сообщение beks000 » 03 ноя 2013, 16:36

У меня [syntax=java]String rand1;
String rand2;[/syntax]

Делаю как ты сказал, String преобразовываю в int, но результат никак не выходит

Аватара пользователя
trew
Сообщения: 450
Зарегистрирован: 28 сен 2013, 17:34

Re: Вопрос по TextView Random

Сообщение trew » 03 ноя 2013, 16:51

Зачем заниматься такой ерундой?
Если нужно хранить числа и работать с ними, используй Integer (речь идет о целых числах).
Integer rand1, rand2;
Когда появиться желание вывести значение, после множества арифметических операция,
преобразуем в текст результат, например: rand1.toString()
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.

Аватара пользователя
beks000
Сообщения: 75
Зарегистрирован: 26 апр 2013, 18:15
Контактная информация:

Re: Вопрос по TextView Random

Сообщение beks000 » 03 ноя 2013, 17:16

ЧТО ТО Я ЗАПУТАЛСЯ

Смотри:

[syntax=java]String rand1;
String rand2;
Random random = new Random();
int i = random.nextInt(9) + 1;
int j = random.nextInt(9) + 1;

rand1 = String.valueOf(i);
Random1.setText(rand1);
rand2 = String.valueOf(j);
Random2.setText(rand2);

String who = Edittext1.getText().toString();
String wh = rand1 + rand2;
if (who.equals(wh))
// правильно
else
// неправильно
break;[/syntax]

вот так достаю два числа то 1 го до 9, и пытаюсь их друг другу прибавить

Аватара пользователя
trew
Сообщения: 450
Зарегистрирован: 28 сен 2013, 17:34

Re: Вопрос по TextView Random

Сообщение trew » 03 ноя 2013, 17:34

Примерно так, не проверял:
[syntax=java]Random random = new Random();
Integer rand1 = random.nextInt(9) + 1;
Integer rand2 = random.nextInt(9) + 1;
Random1.setText(rand1.toString());
Random2.setText(rand2.toString());

String who = Edittext1.getText().toString();
// нужно ещё добавить проверку что пользователь ввёл число а не текст,
// и проверить строку на пустоту
Integer iwho = Integer.parseInt(who);
Integer wh = rand1 + rand2;
if (iwho.equals(wh))
// правильно
else
// неправильно
break;[/syntax]

Вот готовый метод, для проверки является ли строка числом
[syntax=java]// является ли строка числом
public boolean checkString(String string) {
try {
Integer.parseInt(string);
} catch (Exception e) {
return false;
}
return true;
}
[/syntax]
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.

Аватара пользователя
beks000
Сообщения: 75
Зарегистрирован: 26 апр 2013, 18:15
Контактная информация:

Re: Вопрос по TextView Random

Сообщение beks000 » 03 ноя 2013, 20:51

А будет ли этот пример присваивать 9 +1 или напишет мне просто 91 ???

Аватара пользователя
beks000
Сообщения: 75
Зарегистрирован: 26 апр 2013, 18:15
Контактная информация:

Re: Вопрос по TextView Random

Сообщение beks000 » 04 ноя 2013, 18:33

Кому надо нашел решение: Не мое конечно!

[syntax=java]public class DvaActivity extends Activity {
int a, b, c;
EditText Text1, Text2;
TextView Text;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Text = (TextView) findViewById(R.id.text);
Text1 = (EditText) findViewById(R.id.EditText01);
Text2 = (EditText) findViewById(R.id.EditText02);

final Button button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {

try {
a = Integer.parseInt(Text1.getText().toString());
b = Integer.parseInt(Text2.getText().toString());

} catch (NumberFormatException e) {
a = 0;
b = 0;
}

c = a+b;
Text.setText("Результат сложения = "+c);
}


});

}
}[/syntax]

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Вопрос по TextView Random

Сообщение rezak90 » 04 ноя 2013, 20:22

столько шума из-за преобразования числа в текст)))
String wh = rand1 + rand2; //сразу преобразовывается к строке и по этому выводит 91
R.id.team
Политика на форуме запрещена

Ответить