2016-08-20 116 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

相關問題