2016-08-20 63 views
0

我MainActivity.java代码给出波纹管:短信应用程序尝试对仿真器和设备运行时崩溃

package com.hoque.smser; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.telephony.SmsManager; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 

public class MainActivity extends AppCompatActivity { 

    EditText mo, msg; 
    Button button; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     SendMSG(); 
    } 

    private void SendMSG() { 


     button.setOnClickListener(
            new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       EditText phoneNo = (EditText) findViewById(R.id.phoneNo); 
       EditText message = (EditText) findViewById(R.id.message); 


       final String no = phoneNo.getText().toString(); 
       final String msg = message.getText().toString(); 

       SmsManager smsManager = SmsManager.getDefault(); 
       smsManager.sendTextMessage(no, null, msg, null, null); 

      } 
     } 
     ); 

    } 
} 

我的应用程序崩溃每当我试图启动它,它只是一个短信发送者的应用程序。 我已经加入我的清单如下权限:

<uses-permission android:name="android.permission.SEND_SMS"/> 
<uses-permission android:name="android.permission.RECEIVE_SMS" /> 

我是一个新的程序员,目前学习java。 谢谢你为我提供宝贵的时间。

+2

添加logcat的请 – Jens

回答

0

我的应用程序崩溃每当我试图启动它

那是因为你还没有设置就可以了点击监听器初始化之前你button变量。你可以做这样的事情:

public class MainActivity extends AppCompatActivity { 

    EditText mo, msg; 
    Button button; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     button = (Button) findViewById(R.id.id_to_your_button); // change here 

     SendMSG(); 
    } 

    ... 
} 

尽量遵循更好的编码实践如使用实例变量private,给予合理的名称,以你的方法(的setupSendButton()代替SendMSG)等

+0

非常感谢你。我已经修改了Java文件,现在我的应用程序启动。但是,当我尝试点击按钮它崩溃。我找不到任何崩溃原因。 – OnyHoque

+0

@OnyHoque你得到logcat的错误是什么?什么是您的编译SDK版本? – Shaishav

+0

感谢您的帮助和提示。我是一名新程序员,仍在学习。我重写了这个java文件,现在它运行良好。 Shaishav,我忘了复制logcats。不,我修改了Java文件,应用程序运行良好。所以我不能提供logcats。感谢大家的支持和帮助。对此,我真的非常感激 。 – OnyHoque

相关问题