public class MainActivity extends Activity{
private EditText et_username;
String ms=md; //?我这样赋值不行,
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_username=(EditText) this.findViewById(R.id.et_username);
//检查是否保存的号码,如果有就回显
Map<String,String> map=LoginService.getSavedUserInfo(this);
if(map!=null)
{
et_username.setText(map.get("username"));
}
String md=map.get("username"); //?md的值赋值给f()里的ms
Toast.makeText(this, md+"保存成功12", 0).show();
}
public String f()//?
{
return ms;
}String
private EditText et_username;
String ms=md; //?我这样赋值不行,
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_username=(EditText) this.findViewById(R.id.et_username);
//检查是否保存的号码,如果有就回显
Map<String,String> map=LoginService.getSavedUserInfo(this);
if(map!=null)
{
et_username.setText(map.get("username"));
}
String md=map.get("username"); //?md的值赋值给f()里的ms
Toast.makeText(this, md+"保存成功12", 0).show();
}
public String f()//?
{
return ms;
}String
解决方案 »
- 用JAVA模拟实现一个简单的web nevigator
- struts问题,按天查询出每天的个数,放入list集合,怎么按实际个案的80%显示个数值?解决就给分
- 如何通过字符串来生成Date类型的对象
- 几个关于JBoss和Tomcat的问题,新学JAVA请大虾们详细一些,谢谢了!
- 储存过程参数问题!!!(在线!!)
- 初用eclipse,求教
- 如何读写一个文本文件?给个实例。在线等待
- Error#:914:unable to write to output directory
- !!求救,请问使用MySQL数据库能否使用连接池技术
- 从PB到JAVA的困苦
- StringUtils.rightPad方法中的汉字问题
- 关于接口实现解耦功能的疑问
ms=md;
08-15 05:03:16.582: E/AndroidRuntime(5598): java.lang.RuntimeException: Unable to start receiver whj.cn.SMSZhuanFa: java.lang.IllegalArgumentException: Invalid destinationAddress
08-15 05:03:16.582: E/AndroidRuntime(5598): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2431)
08-15 05:03:16.582: E/AndroidRuntime(5598): at android.app.ActivityThread.access$1500(ActivityThread.java:141)
08-15 05:03:16.582: E/AndroidRuntime(5598): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1332)
08-15 05:03:16.582: E/AndroidRuntime(5598): at android.os.Handler.dispatchMessage(Handler.java:99)
08-15 05:03:16.582: E/AndroidRuntime(5598): at android.os.Looper.loop(Looper.java:137)
08-15 05:03:16.582: E/AndroidRuntime(5598): at android.app.ActivityThread.main(ActivityThread.java:5103)
08-15 05:03:16.582: E/AndroidRuntime(5598): at java.lang.reflect.Method.invokeNative(Native Method)
08-15 05:03:16.582: E/AndroidRuntime(5598): at java.lang.reflect.Method.invoke(Method.java:525)
08-15 05:03:16.582: E/AndroidRuntime(5598): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
08-15 05:03:16.582: E/AndroidRuntime(5598): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
08-15 05:03:16.582: E/AndroidRuntime(5598): at dalvik.system.NativeStart.main(Native Method)
08-15 05:03:16.582: E/AndroidRuntime(5598): Caused by: java.lang.IllegalArgumentException: Invalid destinationAddress
08-15 05:03:16.582: E/AndroidRuntime(5598): at android.telephony.SmsManager.sendTextMessage(SmsManager.java:78)
08-15 05:03:16.582: E/AndroidRuntime(5598): at whj.cn.SMSZhuanFa.onReceive(SMSZhuanFa.java:43)
08-15 05:03:16.582: E/AndroidRuntime(5598): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2424)
08-15 05:03:16.582: E/AndroidRuntime(5598): ... 10 more
//这样做 他报的错
String ms = null;
2,在onCreate方法中,String md=map.get("username"); 这一句之后,加上:
ms = md;
1:String ms = "";
2:ms = md;
(如5楼所说)
然后建立构造方法
public MainActivity(){
onCreate(Bundle savedInstanceState);
}
关键问题在于f()取值时ms没被赋值,即这之前执行onCreate()与否。
另外String ms = md;这种方法肯定不行的
public class MainActivity extends Activity{
private EditText et_username;
String ms=null;
String md = null; //这里不同
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_username=(EditText) this.findViewById(R.id.et_username);
//检查是否保存的号码,如果有就回显
Map<String,String> map=LoginService.getSavedUserInfo(this);
if(map!=null)
{
et_username.setText(map.get("username"));
}
md=map.get("username"); //这里不同
Toast.makeText(this, md+"保存成功12", 0).show();
}
public String f()//?
{
ms =md
return ms;
} }
另外你的代码好像少一个与MainActivity大括号对应的大括号。
08-16 01:38:35.004: E/AndroidRuntime(507): FATAL EXCEPTION: main
08-16 01:38:35.004: E/AndroidRuntime(507): java.lang.RuntimeException: Unable to start receiver whj.cn.SMSZhuanFa: java.lang.IllegalArgumentException: Invalid destinationAddress
08-16 01:38:35.004: E/AndroidRuntime(507): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2431)
08-16 01:38:35.004: E/AndroidRuntime(507): at android.app.ActivityThread.access$1500(ActivityThread.java:141)
08-16 01:38:35.004: E/AndroidRuntime(507): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1332)
08-16 01:38:35.004: E/AndroidRuntime(507): at android.os.Handler.dispatchMessage(Handler.java:99)
08-16 01:38:35.004: E/AndroidRuntime(507): at android.os.Looper.loop(Looper.java:137)
08-16 01:38:35.004: E/AndroidRuntime(507): at android.app.ActivityThread.main(ActivityThread.java:5103)
08-16 01:38:35.004: E/AndroidRuntime(507): at java.lang.reflect.Method.invokeNative(Native Method)
08-16 01:38:35.004: E/AndroidRuntime(507): at java.lang.reflect.Method.invoke(Method.java:525)
08-16 01:38:35.004: E/AndroidRuntime(507): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
08-16 01:38:35.004: E/AndroidRuntime(507): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
08-16 01:38:35.004: E/AndroidRuntime(507): at dalvik.system.NativeStart.main(Native Method)
08-16 01:38:35.004: E/AndroidRuntime(507): Caused by: java.lang.IllegalArgumentException: Invalid destinationAddress
08-16 01:38:35.004: E/AndroidRuntime(507): at android.telephony.SmsManager.sendTextMessage(SmsManager.java:78)
08-16 01:38:35.004: E/AndroidRuntime(507): at whj.cn.SMSZhuanFa.onReceive(SMSZhuanFa.java:37)
08-16 01:38:35.004: E/AndroidRuntime(507): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2424)
08-16 01:38:35.004: E/AndroidRuntime(507): ... 10 more
//会这样报错
如果这两个方法不能确定先执行onCreate方法的话,你可以把onCreate()方法的返回类型改成String类型,然后返回md,f()方法中直接返回onCreate()方法
如果这两个方法不能确定先执行onCreate方法的话,你可以把onCreate()方法的返回类型改成String类型,然后返回md,f()方法中直接返回onCreate()方法
protected String onCreate(Bundle savedInstanceState) {//?这里不能改String 类型 要报错
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_username=(EditText) this.findViewById(R.id.et_username);
//检查是否保存的号码,如果有就回显
Map<String,String> map=LoginService.getSavedUserInfo(this);
if(map!=null)
{
et_username.setText(map.get("username"));
}
md=map.get("username");//?这方法里的md 不能外部使用
Toast.makeText(this, md+"保存成功12", 0).show();
return md;
}
08-16 01:38:35.004: E/AndroidRuntime(507): FATAL EXCEPTION: main
08-16 01:38:35.004: E/AndroidRuntime(507): java.lang.RuntimeException: Unable to start receiver whj.cn.SMSZhuanFa: java.lang.IllegalArgumentException: Invalid destinationAddress
08-16 01:38:35.004: E/AndroidRuntime(507): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2431)
08-16 01:38:35.004: E/AndroidRuntime(507): at android.app.ActivityThread.access$1500(ActivityThread.java:141)
08-16 01:38:35.004: E/AndroidRuntime(507): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1332)
08-16 01:38:35.004: E/AndroidRuntime(507): at android.os.Handler.dispatchMessage(Handler.java:99)
08-16 01:38:35.004: E/AndroidRuntime(507): at android.os.Looper.loop(Looper.java:137)
08-16 01:38:35.004: E/AndroidRuntime(507): at android.app.ActivityThread.main(ActivityThread.java:5103)
08-16 01:38:35.004: E/AndroidRuntime(507): at java.lang.reflect.Method.invokeNative(Native Method)
08-16 01:38:35.004: E/AndroidRuntime(507): at java.lang.reflect.Method.invoke(Method.java:525)
08-16 01:38:35.004: E/AndroidRuntime(507): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
08-16 01:38:35.004: E/AndroidRuntime(507): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
08-16 01:38:35.004: E/AndroidRuntime(507): at dalvik.system.NativeStart.main(Native Method)
08-16 01:38:35.004: E/AndroidRuntime(507): Caused by: java.lang.IllegalArgumentException: Invalid destinationAddress
08-16 01:38:35.004: E/AndroidRuntime(507): at android.telephony.SmsManager.sendTextMessage(SmsManager.java:78)
08-16 01:38:35.004: E/AndroidRuntime(507): at whj.cn.SMSZhuanFa.onReceive(SMSZhuanFa.java:37)
08-16 01:38:35.004: E/AndroidRuntime(507): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2424)
08-16 01:38:35.004: E/AndroidRuntime(507): ... 10 more
//会这样报错
看不出来原因,我觉得可能是你其他代码的问题吧
8-16 01:38:35.004: E/AndroidRuntime(507): FATAL EXCEPTION: main
08-16 01:38:35.004: E/AndroidRuntime(507): java.lang.RuntimeException: Unable to start receiver whj.cn.SMSZhuanFa: java.lang.IllegalArgumentException: Invalid destinationAddress
08-16 01:38:35.004: E/AndroidRuntime(507): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2431)
08-16 01:38:35.004: E/AndroidRuntime(507): at android.app.ActivityThread.access$1500(ActivityThread.java:141)
08-16 01:38:35.004: E/AndroidRuntime(507): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1332)
然后在onCreate()赋值之后报错的地方是ms没取到值么?
然后在onCreate()赋值之后报错的地方是ms没取到值么?
恩,是的,没有取到值,