Как отобразить int или char в TextView - PullRequest
0 голосов
/ 20 февраля 2012

Я хочу обработать ввод комментария и записать обратно в TextView. Я сделал класс с именем PandaAssistents

package panda.com.db;

public class PandaAssistents{

    private static int CallOfIndex;
    private static String comment;
    public PandaAssistents(String input){
        this.comment = input;
        this.CallOfIndex=input.indexOf("熊貓");
    }

    public char getCall(){
        return comment.charAt(CallOfIndex);
    }
}

Но когда я указываю поле EditText и нажимаю кнопку, возникает ошибка.

private void btnAction(Button btn){
        btn.setOnClickListener(new View.OnClickListener() {

            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                EditText edt = (EditText)IndexActivity.this.findViewById(R.id.EditText01);
                TextView txt = (TextView)IndexActivity.this.findViewById(R.id.TextView01);
                pa = new PandaAssistents(edt.getText().toString());
                txt.setText(pa.getCall());
            }
        });
    }

Я не знаю, в чем проблема

Ответы [ 2 ]

4 голосов
/ 20 февраля 2012

TextView или EditText setText требуют, чтобы в качестве входного параметра использовались charsequence или id ресурса, если вы хотите установить char или int, преобразуйте в него строку перед установкой в ​​textview. так что вы можете попробовать следующее:

txt.setText(""+pa.getCall());
0 голосов
/ 20 февраля 2012

Вы уверены, что this.CallOfIndex=input.indexOf("熊貓") на самом деле возвращает действительный индекс, а не -1? Поскольку вы не проверяете это значение по ошибке, если результат равен -1, при вызове comment.charAt(CallOfIndex) с CallOfIndex, равным -1, вы получите IndexOutOfBoundsException

...