在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未定义类型字符串 我该如何解决这个问题。
答案 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
之类的其他内容