2014-03-03 22 views
0

我編寫的應用程序爲大學和其中一項活動發送(按鈕單擊)銀行信息保存在偏好通過短信和電子郵件在背景中..目前的電子郵件將發送,但信息保存在喜好將與空值到達:Android的幫助!空指針和代碼問題

發送電子郵件的方法:

public synchronized void sendMail(String loc, String sender, String recipients) throws Exception { 
    try{ 
    MimeMessage message = new MimeMessage(session); 
    //loc = loc.replace(" ", ""); 
    String mes = "Help!! I've completely run out of money and need you to send some via bank transfer please. " 
      + "my account info is: " 
      + BankNameAddress 
      + " " 
      + " account number: " 
      + BankAccount 
      + " Sort Code is: " 
      + SortCode 
      + " " 
      + "Thank you so much!!"; 
    DataHandler handler = new DataHandler(new ByteArrayDataSource(mes.getBytes(), "text/plain")); 
    message.setSender(new InternetAddress(sender)); 
    message.setSubject("Help Money Emergency!"); 
    message.setDataHandler(handler); 
    addAttachment(mes); 
    message.setContent(_multipart); 
    if (recipients.indexOf(',') > 0) 
     message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients)); 
    else 
     message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients)); 
    Transport.send(message); 
    }catch(Exception e){ 

    } 
} 

喜好的java:

package com.attack.android; 

import android.os.Bundle; 
import android.preference.PreferenceActivity; 

public class Prefs extends PreferenceActivity{ 

    @SuppressWarnings("deprecation") 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     addPreferencesFromResource(R.xml.prefs); 
    } 

} 

喜好XML:

<EditTextPreference 
    android:key="BankAccount" 
    android:summary="Enter your bank account number" 
    android:title="Bank account Number" > 
</EditTextPreference> 
<EditTextPreference 
    android:key="BankNameAddress" 
    android:summary="Enter your banks name and address" 
    android:title="Bank name and address" > 
</EditTextPreference> 
<EditTextPreference 
    android:key="SortCode" 
    android:summary="Enter your bank sort code" 
    android:title="Sort Code" > 
</EditTextPreference> 

+4

請發佈您的logcat輸出。 – SilentKiller

+0

首先,不要以字符串格式發送敏感信息,而是使用char [],這樣更安全。 – Dejan

+0

如何從首選項中檢索數據? – PearsonArtPhoto

回答

0

我想你沒有正確填充您的喜好值。這是你應該怎麼做的。

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); 
String bankAccount=prefs.getString("BankAccount",""); 
... 

第一個值是您首選項的關鍵字,第二個值是默認值,以防事先未輸入任何內容。

另外,就風格而言,只有類應該以大寫字母開頭,變量應該以小寫字母開頭。它只是讓我們更容易弄清楚發生了什麼。 BankAccount就是這樣一個例子。