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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
OnixPar
0 / 0 / 0
Регистрация: 01.03.2014
Сообщений: 29
#1

Не удается конвертировать int в String - Программирование Android

07.07.2014, 17:50. Просмотров 1437. Ответов 11
Метки нет (Все метки)

В приложение выдачи и приема книг, в истории есть проблема. При нажатие на кнопку берется название книги из массива (строка 30) и с помощью адаптера вставляется в Textview, но даже после конвертирования переменной из int в string в приложение (строка 103) все равно отображается число см. на скриншиоте( строка 108).Понимаю, что я конверитрую не просто цифру, а строку заданную переменной int book, подскажите пожалуйста с помощью какого метода можно вставить текст из массива в textview в адаптере.

Класс MainActivity.java
Java
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
package com.example.as.testl;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;
 
public class MainActivity extends Activity {
 
    final String BOOK_STATE = "state";
    final String BOOK_BALANCE = "balance";
 
 
    private int btn = 10;
    private int mBookIndex = 0;
    private String name ;
    private TextView textView, tvBookName;
    ListView lvHistory;
    SimpleAdapter sAdapter;
    ArrayList<Map<String, Object>> data;
    Map<String, Object> m;
 
    public Books[] mBookBank = new Books[]{
            new Books(R.string.book1),
            new Books(R.string.book2),
            new Books(R.string.book3),
            new Books(R.string.book4),
            new Books(R.string.book5),
            new Books(R.string.book6),
            new Books(R.string.book7),
            new Books(R.string.book8),
            new Books(R.string.book9),
            new Books(R.string.book10)
    };
 
    private void updateBook(){
        int book = mBookBank[mBookIndex].getBooks();
        //name = book;
 
    }
 
 
 
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        textView = (TextView) findViewById(R.id.textView);
        tvBookName = (TextView) findViewById(R.id.tvBookName);
 
        data = new ArrayList<Map<String, Object>>();
        m = new HashMap<String, Object>();
        m.put(BOOK_STATE, "Книг в библиотеке ");
        m.put(BOOK_BALANCE, btn + " штук");
        data.add(m);
 
        String[] from = { BOOK_STATE, BOOK_BALANCE };
 
        int[] to = { R.id.tvState, R.id.tvBalance };
 
 
 
        sAdapter = new SimpleAdapter(this, data, R.layout.history, from, to);
 
        lvHistory = (ListView) findViewById(R.id.lvHistory);
        lvHistory.setAdapter(sAdapter);
        registerForContextMenu(lvHistory);
    }
 
    public void onGiveClick(View v) {
        btn = --btn;
 
 
        m = new HashMap<String, Object>();
        if (btn > 0){
            m.put(BOOK_STATE, "Книга  выдана");
            m.put(BOOK_BALANCE, "Осталось " + btn + " штук");
        }
         else {
            btn = 0;
            m.put(BOOK_STATE, "Книги закончились");
            m.put(BOOK_BALANCE, "Осталось " + btn + " штук");
            Toast.makeText(this, "В библиотеке больше нет книг", Toast.LENGTH_SHORT).show();
        }
 
        data.add(m);
        sAdapter.notifyDataSetChanged();
 
 
    }
 
    public void onPassClick(View v) {
        btn = ++btn;
        mBookIndex = (mBookIndex + 1) % mBookBank.length;
        int book = mBookBank[mBookIndex].getBooks();
        String str = Integer.toString(book);
 
 
 
        m = new HashMap<String, Object>();
        m.put(BOOK_STATE, "Книга" + str);
        m.put(BOOK_BALANCE, "Осталось " + btn + " штук");
        data.add(m);
        sAdapter.notifyDataSetChanged();
 
 
    }
 
 }
Класс Books.java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.example.as.testl;
 
 
public class Books {
 
        private int mBooks;
 
        public Books (int book){
            mBooks = book;
        }
 
        public int getBooks() {
            return mBooks;
        }
 
 
}
Миниатюры
Не удается конвертировать int в String  
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Muhammad97
10 / 10 / 1
Регистрация: 10.11.2013
Сообщений: 238
07.07.2014, 18:13     Не удается конвертировать int в String #2
Я не понял вопроса. Если хочешь конВЕРТИРОВАТЬ из int в String, то используй String s = valueOf(int i) или String.parseInt(int i)
OnixPar
0 / 0 / 0
Регистрация: 01.03.2014
Сообщений: 29
07.07.2014, 18:23  [ТС]     Не удается конвертировать int в String #3
Пробовал, не получается. Все равно цифра вставляется вместо текста.
Muhammad97
10 / 10 / 1
Регистрация: 10.11.2013
Сообщений: 238
07.07.2014, 18:26     Не удается конвертировать int в String #4
А какой должен быть текст?
OnixPar
0 / 0 / 0
Регистрация: 01.03.2014
Сообщений: 29
07.07.2014, 18:38  [ТС]     Не удается конвертировать int в String #5
В ресурсах название 10 книг:
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">TestL</string>
    <string name="title">Библиотека</string>
    <string name="bookbalance">Остаток книг</string>
    <string name="givebook">Выдать книгу</string>
    <string name="passbook">Получить книгу</string>
    <string name="history">История</string>
    <string name="action_settings">Settings</string>>
    <string name="book1">"Идиот"</string>
    <string name="book2">"Обломов"</string>
    <string name="book3">"Война и мир"</string>
    <string name="book4">"Дядя Ваня"</string>
    <string name="book5">"Мертвые души"</string>
    <string name="book6">"Неуч"</string>
    <string name="book7">"Капитанская дочь"</string>
    <string name="book8">"Гарри Поттер"</string>
    <string name="book9">"Анна Каренина"</string>
    <string name="book10">"Оно"</string>
 
 
 
</resources>
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
07.07.2014, 18:53     Не удается конвертировать int в String #6
вместо
Java
1
new Books(R.string.book1)
я бы попробовал сделать так
Java
1
new Books(getResources().getString(R.string.book1))
ну и так далее там, где массив формируется

или вообще сделать так
Java
1
bookArray =  = getResources().getStringArray(R.array.myCoolBookArray);
Muhammad97
10 / 10 / 1
Регистрация: 10.11.2013
Сообщений: 238
07.07.2014, 18:58     Не удается конвертировать int в String #7
Java
1
2
3
4
5
6
int book_cnt = 10;
String books[] = new String[10];
int book_adress[] = {R.string.book1, R.string.book2, R.string.book3};
for (int i = 0; i<book_cnt; i++) {
books[i] = getResources().getString(book_adress[i]);
}
OnixPar
0 / 0 / 0
Регистрация: 01.03.2014
Сообщений: 29
08.07.2014, 11:05  [ТС]     Не удается конвертировать int в String #8
Когда использую код ( поменяв переменные в books.java с int в String)
Java
1
new Books(getResources().getString(R.string.book1))
Приложение просто не запускается, а этот код мне не совсем понятно как реализовать
Java
1
2
3
    
 
bookArray =  = getResources().getStringArray(R.array.myCoolBookArray);
Если не сложно подскажите.
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
08.07.2014, 11:26     Не удается конвертировать int в String #9
Сообщение было отмечено автором темы, экспертом или модератором как ответ
1. Сначала идем в папку res и создаем там xml файл в котором будем хранить наш массив названий книг, назовем его, к примеру booksArray.xml
2. Копируем туда этот текст, что бы не мучаться
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="utf-8"?>
<resources>
 
    <string-array name="booksArray">
        <item>"Идиот"</item>
        <item>"Обломов"</item>
        <item>"Война и мир"</item>
        <item>"Дядя Ваня"</item>
        <item>"Мертвые души"</item>
        <item>"Неуч"</item>
        <item>"Капитанская дочь"</item>
        <item>"Гарри Поттер"</item>
        <item>"Анна Каренина"</item>
        <item>>"Оно"</item>
    </string-array>
 
</resources>
это и есть наш массив с названиями
3. Нам надо сделать его доступным в виде массива. Для этого в коде, там где раньше вы его вычитывали построчно, пишем так:
Java
1
String[] books = getResources().getStringArray(R.array.booksArray);
Все, можно с ним работать.
OnixPar
0 / 0 / 0
Регистрация: 01.03.2014
Сообщений: 29
08.07.2014, 11:58  [ТС]     Не удается конвертировать int в String #10
Ага, понятно. И теперь как выводить по одному члену массива по очереди при нажатии на кнопку onPassClick ( строка 100), потому что прошлый метод при таком виде заполнения массива не работает?
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
08.07.2014, 12:06     Не удается конвертировать int в String #11
вообще обычно одна тема - один вопрос
а то получается в каждой теме персональные учителя обучают азам программирования

ладно там массив из ресурсов непонятно как вытянуть
но объяснять элементарные вещи типа - сделать в классе int переменную-счетчик нажатий и по нажатию кнопки делать его инкремент (не забывая проверять что бы он не вышел за пределы массива), это уже слишком
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2014, 12:11     Не удается конвертировать int в String
Еще ссылки по теме:
Android В listView работает int, но не работает int[]
PHP Конвертировать из string в int
C++ Как конвертировать String в int
C# Конвертировать из String to Int (системы счисления)
не получается конвертировать string в int 0_0! C#

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

Или воспользуйтесь поиском по форуму:
OnixPar
0 / 0 / 0
Регистрация: 01.03.2014
Сообщений: 29
08.07.2014, 12:11  [ТС]     Не удается конвертировать int в String #12
Все, спасибо, уже разобрался)
Yandex
Объявления
08.07.2014, 12:11     Не удается конвертировать int в String
Ответ Создать тему
Опции темы

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