Java Android帮助!空指针和代码问题

Java Android帮助!空指针和代码问题,java,android,Java,Android,我正在编写一份大学申请书,其中一项活动通过短信和电子邮件在后台发送“首选项”中保存的点击银行信息。。当前电子邮件将发送,但首选项中保存的信息将以空值送达: 发送电子邮件的方法: public synchronized void sendMail(String loc, String sender, String recipients) throws Exception { try{ MimeMessage message = new MimeMessage(session)

我正在编写一份大学申请书,其中一项活动通过短信和电子邮件在后台发送“首选项”中保存的点击银行信息。。当前电子邮件将发送,但首选项中保存的信息将以空值送达:

发送电子邮件的方法:

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>

我认为您没有正确填充首选项值。这是你应该怎么做的

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
String bankAccount=prefs.getString("BankAccount","");
...
第一个值是首选项中的键,第二个值是默认值,以防之前未输入任何内容


另外,作为一种风格,只有类应该以大写开头,变量应该以小写开头。它只是让我们更容易弄清楚发生了什么。BankAccount就是这样一个例子。

请发布您的logcat输出。首先,不要以字符串格式发送敏感信息,而是使用char[],这样更安全。您如何从首选项检索数据?