在android中发送消息

时间:2012-06-14 12:14:25

标签: java android sms

在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 个答案:

答案 0 :(得分:4)

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

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

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

String ph_no = ((EditText) findViewById(R.id.edit_phone)).getText().toString();

答案 1 :(得分:1)

为字符串

使用不同的名称
  String str_ph_no= ph_no.getText().tostring();

作为局部变量获得首选项,因此它将“ph no”视为String

答案 2 :(得分:0)

我想你想要的是什么:

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

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

答案 3 :(得分: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);
    ...

并将您的String ph_no重命名为ph_no_string

之类的其他内容