3

要在我的 android 应用程序中发送消息,我使用了以下代码。

package wishme.code;


import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class Activity2 extends Activity{

    public void onCreate(Bundle savedInstancestate) {
        super.onCreate(savedInstancestate);
        setContentView(R.layout.main2);
        Button previous=(Button) findViewById(R.id.button_prev);
        Button send=(Button) findViewById(R.id.button_send);
        EditText ph_no=(EditText) findViewById(R.id.edit_phone);
        EditText msg=(EditText) findViewById(R.id.edit_msg);

    }
    public void prevclickhandler(View view)
    {
        switch(view.getId())
        {
        case R.id.button_prev:
        Intent intent=new Intent();
        setResult(RESULT_OK,intent);
        finish();
        break;
        case R.id.button_send:
            **String ph_no= ph_no.getText().tostring();** 
    }}
}

但是突出显示的行给出了错误,即方法 getText 未定义类型字符串我该如何解决这个问题。

4

4 回答 4

4

您的变量在不同的范围内定义。ph_no EditText 在 onCreate 中定义,在您的点击处理程序中不可用。您实际调用 getText() 的 ph_no 是您正在定义的字符串。

相反,您可以将 Activity 中的 EditText 定义为实例变量并重命名您的 String,这样变量名称就不会发生冲突。

另一种方法是在需要访问 EditText 时调用 findViewById,如下所示:

String ph_no = ((EditText) findViewById(R.id.edit_phone)).getText().toString();
于 2012-06-14T12:16:29.800 回答
1

为字符串使用不同的名称

  String str_ph_no= ph_no.getText().tostring();

作为局部变量获得偏好,因此它将“ph_no”视为字符串

于 2012-06-14T12:16:35.510 回答
0

你想要的是这个我认为:

String ph_no_string = ph_no.getText().toString();

您首先将 ph_no 定义为 EditText,但稍后您将 ph_no 重新定义为字符串。

于 2012-06-14T12:17:48.093 回答
0

ph_no 不是我们活动中定义的局部变量试试这个:

public class Activity2 extends Activity{ 
private EditText ph_no;

public void onCreate(Bundle savedInstancestate) {
    ...
    ph_no=(EditText) findViewById(R.id.edit_phone);
    ...

并将您的字符串 ph_no 重命名为 ph_no_string 之类的其他名称

于 2012-06-14T12:19:14.607 回答