2014-09-22 52 views
0

按下「panic」按鈕後會打開一個對話框。對話框確認壓腳確實是恐慌。按下onClick positiveButton後發送短信

「是」按鈕被按下時,我想發送短信到號碼(只用礦ATM)

這是我迄今爲止後:

在主菜單:

public Panic panic; 

public void panicSOS(View view) { 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setTitle("SOS Beacon"); 
    builder.setMessage("Are you sure?"); 

    builder.setPositiveButton("ON", new DialogInterface.OnClickListener() { 

     public void onClick(DialogInterface dialog, int which) {    

             //Sets to panic mode 
             panic.sendRequest(null); 
             dialog.dismiss(); } }); 

    builder.setNegativeButton("OFF", new DialogInterface.OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int which) { 

             //Sets to chill mode 

             dialog.dismiss(); } }); 

    AlertDialog alert = builder.create(); 
    alert.show(); 
} 

然後在恐慌類

public class Panic extends Activity { 

String phoneNumber = "04********"; // TODO: should not be static 
String message = "Check-in Request"; 

/** 
* Factory method for creating a launch intent. 
* @param context 
* @param payload extra string input 
* @return 
*/ 
public static Intent makeIntent(Context context, String payload) { 
    return new Intent(context, Panic.class); 
} 

// sends a checkin request the client instantly via SMS 
public void sendRequest(View view) {   
    SmsManager manager = SmsManager.getDefault(); 
    manager.sendTextMessage(phoneNumber, null, message, null, null);   
} 

得到一個空指針異常以及一些超視距呃錯誤。有小費嗎?

處開始的logcat粗野的總刈

2月9日至23日:22:22.675:d/AndroidRuntime(4518):關閉VM 2月9日至23日:22:22.675:W/dalvikvm(4518):線程ID = 1:未捕獲的異常線程退出(組= 0x41800d88)

2月9日至23日:22:22.675:E/AndroidRuntime(4518):致命異常:主

2月9日至23日:22:22.675 :E/AndroidRuntime(4518):過程:com.illusivemen.smartwatchclient,PID:4518

09-23 02:22:22.675:E/AndroidRuntime(4518):java.lang.NullPointerException

09-23 02:22:22.675:E/AndroidRuntime(4518):at com.illusivemen.smartwatchclient.MainMenu $ 2.onClick(MainMenu.java:96)

09-23 02:22:22.675:E/AndroidRuntime(4518):at com.android.internal.app.AlertController $ ButtonHandler.handleMessage(AlertController.java:171 )

2月9日至23日:22:22.675:E/AndroidRuntime(4518):在android.os.Handler.dispatchMessage(Handler.java:102)

2月9日至23日:22:22.675:電子/ AndroidRuntime(4518):在android.os .Looper.loop(Looper.java:212)

2月9日至23日:22:22.675:E/AndroidRuntime(4518):在android.app.ActivityThread.main(ActivityThread.java:5135)

09-23 02:22:22.675:E/AndroidRuntime(4518):在java.lang.reflect.Method.invokeNative(Native Method)

09-23 02:22:22.675:E/AndroidRuntime(4518)在java.lang.reflect.Method.invoke(Method.java:515)

09-23 02:22:22.675:E/AndroidRuntime(4518):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller。運行(ZygoteInit.java:877)

2月9日至23日:22:22.675:E/AndroidRuntime(4518):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)

2月9日至23日:22:22.675 :E/AndroidRuntime(4518):at dalvik.system.NativeStart.main(Native Method)

09-23 02:22:24.455:I/Process(4518):發送信號。PID:4518 SIG:9

2月9日至23日:39:04.480:d/AndroidRuntime(5298):關閉VM

2月9日至23日:39:04.480:W/dalvikvm(5298):線程ID = 1:39:04.490:E/AndroidRuntime(5298):致命異常:主

2月9日至23日:39:螺紋與未捕獲的異常 (組= 0x41800d88)

2月9日至23日在退出04.490 :E/AndroidRuntime(5298):進程:com.illusivemen.smartwatchclient,PID:5298

09-23 02: 39:04.490:E/AndroidRuntime(5298):顯示java.lang.NullPointerException

二月九日至23日:39:04.490:E/AndroidRuntime(5298):在com.illusivemen.smartwatchclient.MainMenu $ 2.onClick(MainMenu的。的java:96)

2月9日至二十三日:39:04.490:E/AndroidRuntime(5298):在com.android.internal.app.AlertController $ ButtonHandler.handleMessage(AlertController.java:171)

09 -23 02:39:04.490:E/AndroidRuntime(5298):at android.os.Handler.dispatchMessage(Handler.java:102)

09-23 02:39:04.490:E/AndroidRuntime(5298)在android.os.Looper.loop(Looper.java:2 12)

2月9日至23日:39:04.490:E/AndroidRuntime(5298):在android.app.ActivityThread.main(ActivityThread.java:5135)

2月9日至23日:39:04.490: E/AndroidRuntime(5298):在java.lang.reflect.Method.invokeNative(本地方法)

09-23 02:39:04.490:E/AndroidRuntime(5298):在java.lang.reflect.Method。調用(Method.java:515)

二月九日至23日:39:04.490:E/AndroidRuntime(5298):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:877)

2月9日至23日:39:04.490:E/AndroidRuntime(5298):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)

2月9日至23日:39:04.490: E/AndroidRuntime(5298):at dalvik.system.NativeStart.main(Native Method)

09-23 02:39:05.980:I/Process(5298):發送信號。 PID:5298 SIG:9

+1

發表您的logcat所以我們可以確定那些'其他幾個錯誤' – goonerDroid 2014-09-22 16:28:03

+0

我想你的onclicklistener你的「恐慌」爲空。我們可以看到你在哪裏定義它? – 2014-09-22 16:50:22

+0

發表了logcat – 2014-09-22 16:51:29

回答

0

如果Panic正常的java類,則不需要在其中擴展Activity。如果Panic是活動則不是通過創建Panic對象調用方法使用一個實用工具類,並在這兩個活動的爲使用:

public class UtilityClass { 

String phoneNumber = "04********"; // TODO: should not be static 
String message = "Check-in Request"; 

public static Intent makeIntent(Context context, String payload) { 
    return new Intent(context, Panic.class); 
} 

// sends a checkin request the client instantly via SMS 
public void sendRequest() {   
    SmsManager manager = SmsManager.getDefault(); 
    manager.sendTextMessage(phoneNumber, null, message, null, null);   
} 

現在叫從AlertDialog sendRequest和活動爲:

new UtilityClass().sendRequest(); 
+0

我不知道你是誰,也不知道你來自哪裏,但我希望你現在最好。 – 2014-09-22 17:05:26