2012-04-24 124 views
0

我有一个简单的消息应用程序,它获取editText框的文本并将其发送到服务器。我想要做的就是当文本发送到服务器时,我想让editText框重置。OnClick方法杀死Android应用程序

这里是我的代码工作,但,它不复位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()); 

    } 

如果我添加一行代码,以恢复我的应用程序死框:

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; 
+0

你可以发布红色文本的整个logcat错误日志。 – 2012-04-24 23:29:56

+0

什么类型是'消息'? – 2012-04-24 23:31:11

+0

在我的问题中更新。 “全局变量列表” – EGHDK 2012-04-24 23:53:00

回答

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

不应该的这些顺序颠倒?在您拨打getText之前,您应该先说出“信息”。

+0

...除非'message'被定义为一个实例变量,这有点奇怪。 – 2012-04-24 23:33:14

+0

哦,我的。我是如何忽略这一点的?这正是它的原因。我想知道为什么当重置代码没有被实现时它正常工作。 – EGHDK 2012-04-24 23:57:07