Чтение значения ячейки TableRow и возвращение целого числа - PullRequest
1 голос
/ 29 марта 2012

В основном у меня есть TableLayout с несколькими TableRows, каждая из которых содержит 5 ячеек (Name, Price, Count, IncreaseButton, DecreaseButton), а затем я написал функцию для возврата цены определенной строки, но я продолжаю получать исключение.

Это код:

private int getRowPrice(View target) //target is a Button
{
    TableRow row = (TableRow) target.getParent();
    TextView priceCell = (TextView) row.getChildAt(1);

    String price = priceCell.getText().toString();

    //The cell text may start with $ or another currency
    if (price.startsWith(getString(R.string.currency))) 
    {
        price = price.substring(getString(R.string.currency).length()).toString();
    }

    return Integer.getInteger(price); //Here I get a "java.lang.NullPointerException"
}

Если я Log.d () цена выводит правильное значение, и если я пытаюсь вернуть getInteger ("10"), который работаетхорошо, также отладчик классифицирует 'price' как строку.Поэтому я должен признать, что понятия не имею, почему эта ошибка повторяется.

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

1 Ответ

1 голос
/ 29 марта 2012

Вам необходимо использовать Integer.valueOf () вместо Integer.getInteger () . Если вы посмотрите документы API для Integer.getInteger (), вы увидите, что он «возвращает значение Integer системного свойства, идентифицированного данной строкой». Название метода немного вводит в заблуждение.

...