0

editText ボックスのテキストを取得してサーバーに送信する単純なメッセージング アプリケーションがあります。私がしたいのは、テキストがサーバーに送信されたときに、editText ボックスをリセットすることだけです。

動作するコードは次のとおりですが、editText ボックスはリセットされません。

public void sendMessage(View v) {
        Editable messagetext;

        messagetext = message.getText();

        final SharedPreferences prefs = PreferenceManager
                .getDefaultSharedPreferences(getBaseContext());

        username = prefs.getString("username", "null");

        where = prefs.getString("chat", "null");
        message = (EditText) findViewById(R.id.inptbox);

        function = new Functions();

        response = function
                .sendMessage(username, where, messagetext.toString());

    }

ボックスをリセットするために、もう 1 行のコードを追加すると、アプリケーションが停止します。

public void sendMessage(View v) {
    Editable messagetext;

    messagetext = message.getText();
        message.setText("");
    final SharedPreferences prefs = PreferenceManager
            .getDefaultSharedPreferences(getBaseContext());

    username = prefs.getString("username", "null");

    where = prefs.getString("chat", "null");
    message = (EditText) findViewById(R.id.inptbox);

    function = new Functions();

    response = function
            .sendMessage(username, where, messagetext.toString());

}

私が得るエラー(私と一緒に、私はそれほど良いlogcatではありません)は次のとおりです。

E/AndroidRuntime(7207): java.lang.IllegalStateException: Could not execute method of the activity

グローバル変数のリスト:

String username = "";
    Functions function;
    EditText message;
    String response = "";
    String where = "";
    String inboxx;
4

1 に答える 1

2
...
messagetext = message.getText();                 
...
message = (EditText) findViewById(R.id.inptbox);  
...

これらの順序を逆にするべきではありませんか?それを呼び出す前に、「メッセージ」とは何かを言う必要がありますgetText

于 2012-04-24T23:29:59.173 に答える