0

フラグメントで特定のeditTextがヒットしたときに、トーストしようとしています。

私のフラグメントアクティビティ:

@Override
    public void onActivityCreated(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onActivityCreated(savedInstanceState);

        EditText ed2 = (EditText) getView().findViewById(R.id.editText2);
        ed2.setOnTouchListener(new OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if(MotionEvent.ACTION_UP == event.getAction()){

                    Toast.makeText(getActivity(), "Hello", Toast.LENGTH_LONG).show();
                }
                return false;
            }
        });
    }

このフラグメントが追加されると、アプリケーションがクラッシュします。でnullポインタを取得していますed2.setOnTouchListener...

何か案は?

4

2 に答える 2

1

EditTextがnullです。コンテンツビューにedittextが含まれていない場合、edittextを作成できません。OnTouchListenerはnullではありません。最初にEditTextを確認してください。

于 2012-08-04T22:17:00.643 に答える
1

onCreateViewを使用する

 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.your_view, container, false);
    EditText = ed2 = (EditText) getView().findViewById(R.id.editText2);
    ed2.setOnTouchListener(new OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if(MotionEvent.ACTION_UP == event.getAction()){

                Toast.makeText(getActivity(), "Hello", Toast.LENGTH_LONG).show();
            }
            return false;
        }
    });
    return view;
}
于 2012-08-04T22:16:18.923 に答える