0

アンドロイドに慣れていないので、私はいくつかの問題を抱えています。現在、開発しようとしているアプリでフラグメントを利用しようとしています。フラグメント内のレイアウトの一部として表示されるEditTextビューからのデータの移動をシミュレートしようとしています。

レイアウトには他のいくつかのビューが含まれています。1つは空のTextViewで、ボタンもレイアウトの一部です。フラグメントのonCreateView内のボタンのコードをプログラムで実装しました。コードの抜粋を以下に示します。

私がやろうとしているのは、EditTextビューに入力した内容をキャプチャし、それをEditTextタイプの変数にロードし、ボタンがクリックされた後に空のTextViewにロードすることです。これは、データベースからこのデータを取得して表示することをシミュレートする最初の試みで行っています。繰り返しますが、コードは次のとおりです。

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

        // Inflate the layout for this fragment and assign it to a view
        View view = inflater.inflate(R.layout.care_meeting, container, false);

        Button button = (Button) view.findViewById(R.id.MtgButton);
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                resName = (EditText) v.findViewById(R.id.resNameEditText);
                trsName = resName.getText().toString();
                TextView text = (TextView) v.findViewById(R.id.trNameView);
                text.setText(trsName);
            }
        });

        return view;
    }

この問題は、resName値を確認し、それがnullであることがわかった場合に発生します。これにより、次の行に移動するとnullpointer例外がスローされます。私が入力したものが変数によって取得されない理由を理解しようとしています。また、キャスト例外を含むまったく異なる問題を引き起こすgetText()メソッドを使用してみました。それで私はそれを放棄してこれに固執しました。

この問題を経験した可能性のある他の誰かを見つけようとしましたが、空白を描いています。私は何が間違っているのですか?この問題の解決に役立つ洞察を教えてください。

前もって感謝します、

ダグ

4

1 に答える 1

0

私は解決策を見つけました:getView()メソッドを使用する必要がありました:

resName = (EditText) getView().findViewById(R.id.resNameEditText);
trsName = resName.getText().toString();
TextView text = (TextView) getView().findViewById(R.id.trNameView);
text.setText(trsName);

変更は問題なく機能します。

于 2012-11-28T02:30:33.693 に答える