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[],这样更安全。您如何从首选项检索数据?