守望者5个角色分钟

时间:2017-09-18 09:18:55

标签: android count character min textwatcher

我的代码遇到了一些问题。在我的片段中,我在null对象引用上得到了类似addTextChangedListener android.text.TextWatcher的错误。 我是Android环境中的新手

我想在我的EditText字段中创建最小字符5和app崩溃。

编辑1:

public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_my_game_details, container, false);

    typeMessageToPost = view.findViewById(R.id.Details);

    typeMessageToPost.addTextChangedListener(mTextEditorWatcher);

return view;}


private final TextWatcher mTextEditorWatcher=new TextWatcher() {

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        // TODO Auto-generated method stub

    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count,
                                  int after) {
        // TODO Auto-generated method stub


    }

    @Override
    public void afterTextChanged(Editable s) {
        // TODO Auto-generated method stub
        number_of_character.setText(String.valueOf(140-s.length()));
    }
};}

1 个答案:

答案 0 :(得分:1)

您似乎没有为typeMessageToPost分配任何内容。在片段中,您使用onCreateView()而不是onCreate()来初始化视图。因此,将onCreate()方法更改为:

@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.your_layout, container, false);
    typeMessageToPost = view.findViewById(R.id.your_edit_text_id);
    typeMessageToPost.addTextChangedListener(mTextEditorWatcher);

    return view;
}

修改

检查你是否至少有5个字符是没什么大不了的:

@Override
public void afterTextChanged(Editable s) {
    if (s.length() < 5) {
        number_of_character.setText("Error text you want to display");
    } else {
        // Whatever you want to do once the input text has at least 5 characters
    }
}