Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
PAnT0P
1016 / 539 / 70
Регистрация: 26.03.2012
Сообщений: 980
#1

Объединение строк - Программирование Android

20.11.2014, 15:17. Просмотров 541. Ответов 6
Метки нет (Все метки)

3 день как начал изучать программирование под андроид. Скачал книжку Брайн Харди, Билл Филлипс - Программирование под Android. Смотрю примеры выполняю предлагаемые задания для самостоятельного выполнения.
На одном из таких занятий застопорился: не могу объединить строку с числом, при запуске в место текста "API level" выводится число 2131361808.
Подскажите, что я делаю не так?

Содержимое onCreate в QuizActivity.java
Javascript
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
    @TargetApi(11)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d(TAG, "onCreate() called");
        setContentView(R.layout.activity_quiz);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
            ActionBar actionBar = getActionBar();
            actionBar.setSubtitle(R.string.app_name);
        }
        mApiTextView = (TextView)findViewById(R.id.api_text_view);
        mApiTextView.setText(R.string.api_version + " " + Build.VERSION.SDK_INT); // Вот здесь какой то косяк
 
        mQuestionTextView = (TextView)findViewById(R.id.question_text_view);
        int question = mQuestionBank[mCurrentIndex].getQuestion();
        mQuestionTextView.setText(question);
        mQuestionTextView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mCurrentIndex = (mCurrentIndex + 1) % mQuestionBank.length;
            }
        });
 
        mTrueButton = (Button)findViewById(R.id.true_button);
        mTrueButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                checkAnswer(true);
            }
        });
 
        mFalseButton = (Button)findViewById(R.id.false_button);
        mFalseButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                checkAnswer(false);
            }
        });
 
        mNextButton = (ImageButton)findViewById(R.id.next_button);
        mNextButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mCurrentIndex = (mCurrentIndex + 1) % mQuestionBank.length;
                updateQuestion();
            }
        });
 
        mPrevButton = (ImageButton)findViewById(R.id.prev_button);
        mPrevButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mCurrentIndex = (mCurrentIndex - 1);
                if (mCurrentIndex < 0){
                    mCurrentIndex= mQuestionBank.length-1;
                }
                updateQuestion();
            }
        });
 
        if (savedInstanceState != null) {
            mCurrentIndex = savedInstanceState.getInt(KEY_INDEX, 0);
                   }
 
        mCheatButton = (Button)findViewById(R.id.cheat_button);
        mCheatButton.setOnClickListener(new View.OnClickListener() {
 
            @Override
            public void onClick(View v) {
                Intent i = new Intent(QuizActivity.this, CheatActivity.class);
                boolean answerIsTrue = mQuestionBank[mCurrentIndex].isTrueQuestion();
                i.putExtra(CheatActivity.EXTRA_ANSWER_IS_TRUE, answerIsTrue);
                startActivityForResult(i, 0);
            }
        });
 
        updateQuestion();
    }
Содержимое activity_quiz.xml
XML
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/FrameLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <TextView
        android:id="@+id/question_text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="24dp" />
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:orientation="vertical" >
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:orientation="horizontal" >
            <Button
                android:id="@+id/true_button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/true_button" />
            <Button
                android:id="@+id/false_button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
            android:text="@string/false_button" />
        </LinearLayout>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:layout_gravity="center"
            android:id="@+id/api_text_view"
            android:padding="24dp" />
    </LinearLayout>
    <ImageButton
        android:id="@+id/prev_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/arrow_left"
        android:layout_gravity="bottom|left"
        android:contentDescription="previous" />
    <Button
        android:id="@+id/cheat_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|center"
        android:text="@string/cheat_button" />
    <ImageButton
        android:id="@+id/next_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/arrow_right"
        android:layout_gravity="bottom|right"
        android:contentDescription="next" />
</FrameLayout>
Содержимое strings.xml
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name" translatable="false">GeoQuiz</string>
    <string name="title_activity_quiz" translatable="false">GeoQuiz</string>
    <string name="action_settings" translatable="false">(-_-)</string>
    <string name="title_activity_cheat" translatable="false">CheatActivity</string>
    <string name="api_version" translatable="false">API level</string>
    <string name="next_button">Next</string>
    <string name="prev_button">Prev</string>
    <string name="true_button">True</string>
    <string name="false_button">False</string>
    <string name="correct_toast">Correct!</string>
    <string name="incorrect_toast">Incorrect!</string>
    <string name="menu_settings">Settings</string>
    <string name="question_oceans">The Pacific Ocean is larger than the Atlantic Ocean.</string>
    <string name="question_mideast">The Suez Canal connects the Red Sea and the Indian Ocean.</string>
    <string name="question_africa">The source of the Nile River is in Egypt.</string>
    <string name="question_americas">The Amazon River is the longest river in the Americas.</string>
    <string name="question_asia">Lake Baikal is the world\'s oldest and deepest freshwater lake.</string>
    <string name="warning_text_view">Are you sure you want to do this?</string>
    <string name="show_answer_button">Show Answer</string>
    <string name="judgment_toast">Cheating is wrong.</string>
    <string name="cheat_button">Cheat!</string>
</resources>
Миниатюры
Объединение строк  
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2014, 15:17     Объединение строк
Посмотрите здесь:

Приложение обои-объединение - Программирование Android
Здравствуйте, подскажите пожалуйста: По урокам сделал 2 приложения: 1. Отображает картинки из папки в GridView 2. Картинки...

Объединение строк - C#
объедению строки, предварительный вывод срабатывает нормально, но выводится ошибка, при добавление данного запроса к адаптеру, та же самая...

Объединение строк С++ - C++
Заданы две строки. Построить новую строку, состоящую из символов, которые входят как в одну, так и в другую строку. Вот пробовал...

Объединение строк - C#
Весь мозг сегодня вынес! Есть List, заполняется так: zopa.Add(get_name(id_club)); При коде : MessageBox.Show(&quot; + &quot; +...

Объединение строк - PHP
Подскажите функцию похожую по своему назначению на strcat() в c++; Мне нужно записать 2 и более строк в 1 переменную, как пример: ...

Объединение строк - Turbo Pascal
нужна программа, блок схема и мат модель пожалуйста помогите??????????????? 5. Даны два числа: N1 и N2, и две строки: S1 и S2....

Объединение строк - MySQL
Подскажите пожалуйста. Мне нужно было узнать сколько каждый сотрудник продал всего машин. use bd; Select ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
20.11.2014, 15:47     Объединение строк #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от PAnT0P Посмотреть сообщение
R.string.api_version
это int
вместо этого надо getString(R.string.api_version)

т.е.
Java
1
mApiTextView.setText(getString(R.string.api_version) + " " + Build.VERSION.SDK_INT);
PAnT0P
1016 / 539 / 70
Регистрация: 26.03.2012
Сообщений: 980
20.11.2014, 16:08  [ТС]     Объединение строк #3
Цитата Сообщение от YuraAAA Посмотреть сообщение
вместо этого надо getString(R.string.api_version)
Точно, так работает, но тогда странно почему
Javascript
1
mApiTextView.setText(R.string.api_version)
выводит не число а правильную строку "API level"?
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
20.11.2014, 16:34     Объединение строк #4
Цитата Сообщение от PAnT0P Посмотреть сообщение
но тогда странно почему
Java
1
mApiTextView.setText(R.string.api_version)
выводит не число а правильную строку "API level"?
Потому что один метод setText() принимает строку, а другой ид ресурса со строкой (int). Когда вы складываете строку с числом, число автоматом переводится в строку и в метод уходит строка, но если вы складываете ид(int) и другое число (int) то и в метод уходит сумма этих 2х интов, а т.к. под этим ид нет ресурса - просто выводит число.
PAnT0P
1016 / 539 / 70
Регистрация: 26.03.2012
Сообщений: 980
20.11.2014, 16:39  [ТС]     Объединение строк #5
Все таки хочу добить этот вопрос, для более глубокого понимания.
Почему тогда это выводит число?
Javascript
1
mApiTextView.setText(R.string.api_version + " ")
Ведь тут складывается число и строка (пробел)
YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
20.11.2014, 16:57     Объединение строк #6
PAnT0P, это java.
setText - перегруженный метод.
Один из них принимает int, т.е. номер ресурса в xml файле.
Например,
Java
1
setText(R.string.api_version);
Второй принимает String.
И когда Вы делаете int + String, например, 1 + "abs", то получаете СТРОКУ, вида "1abs".
И как раз вызывается другой метод setText.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2014, 19:29     Объединение строк
Еще ссылки по теме:

объединение строк - C++ Builder
подскажите, пожалуйста.. у меня есть несколько строк..как их объединить в одну ???

Объединение строк - C++
помогите написать функцию объединения двух строк в одну (вторая присваивается к концу первой). Объединить две строки, затем еще две.

Объединение строк - MySQL
http://xpoint.ru/forums/computers/dbms/mysql/thread/40123.xhtml - здесь ответ: Здравствуйте. есть таблица id value1 A1 1 ...

объединение строк - MS Excel
Подскажите плиз как объединить большое количество строк (80000) следующим образом: строка1 строка2 строка3 строка4 строка5 ...

Объединение строк - SQL Server
Добрый день. Подскажите как можно объединить строки с одинаковым полем. Пример есть таблица namt fam tan 1 2 ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
PAnT0P
1016 / 539 / 70
Регистрация: 26.03.2012
Сообщений: 980
20.11.2014, 19:29  [ТС]     Объединение строк #7
Теперь все понятно. Спасибо за разъяснение.
Yandex
Объявления
20.11.2014, 19:29     Объединение строк
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru