- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
实际上我有两个 java 类,其中一个是 Activity 类。现在从那个 Activity 类中,我想调用不在 Activity 类中的第二类函数。所以一切正常,但是当我在该函数中使用 SharedPreferences 时,它显示错误 Unable to start activity ComponentInfo java.lang.NullPointerException
。请任何人帮忙。
第一个 java 文件的代码:
public class SplashScreen extends Activity
{
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.splash_screen);
CycleManager.getSingletonObject().test();//call functions of another class
}
}
第二个 java 文件的代码:
public class CycleManager
{
private static CycleManager cycleMangrObject;
private CycleManager() {
onInitialization();
//Compute averages using data loaded from register
ComputeAverages();
}
public static synchronized CycleManager getSingletonObject() {
if (cycleMangrObject == null) {
cycleMangrObject = new CycleManager();
}
return cycleMangrObject;
}
public Object clone() throws CloneNotSupportedException {
throw new CloneNotSupportedException();
}
public void test()
{
SharedPreferences preferences1 =getSharedPreferences("myPreferences", 0);
}
public void setAlertOnDevice(){
//Delete data
Uri EVENTS_URI = Uri.parse(getCalendarUriBase(this) + "events");
int id = 1; // calendar entry ID
ContentResolver cr = getContentResolver();
EVENTS_URI= ContentUris.withAppendedId(EVENTS_URI, id);
cr.delete(EVENTS_URI, "calendar_id=1", null);
Resources res=getResources();
//set Alerts in device calendar
Date dtStartDate = CycleManager.getSingletonObject().getStartDate();
boolean bDeleteAndReturn = false;
Calendar cal = Calendar.getInstance();
if (dtStartDate.getTime() == CycleManager.getSingletonObject().getDefaultDate().getTime())
{
bDeleteAndReturn = true;
dtStartDate = cal.getTime();
}
getOffsetsForCycleStages(CycleManager.getSingletonObject().iAvgCycleTime);
if(bDeleteAndReturn==false)
{
if (CycleManager.getSingletonObject().bNextCycleAlert && iStart>0)
{
cal.setTime(dtStartDate);
cal.add(Calendar.DATE, iStart);
// ContentResolver cr = getContentResolver();
String str=res.getString(R.string.alert_start);
String strDescription=res.getString(R.string.alert_start_msg);
ContentValues values = new ContentValues();
values.put("calendar_id", 1);
values.put("title", str);
values.put("description", strDescription);
values.put("dtstart", cal.getTimeInMillis());
values.put("dtend", cal.getTimeInMillis());
cr.insert(EVENTS_URI, values);
}
if (CycleManager.getSingletonObject().bSafeAlert)
{
if (iSafe1>0)
{
cal.setTime(dtStartDate);
cal.add(Calendar.DATE, iSafe1);
// ContentResolver cr = getContentResolver();
String str=res.getString(R.string.alert_safe);
String strDescription=res.getString(R.string.alert_safe_msg) + " " + new Integer(iUnsafe1-iSafe1-1);
ContentValues values = new ContentValues();
values.put("calendar_id", 1);
values.put("title", str);
values.put("description", strDescription);
values.put("dtstart", cal.getTimeInMillis());
values.put("dtend", cal.getTimeInMillis());
cr.insert(EVENTS_URI, values);
}
if (iSafe2>0)
{
cal.setTime(dtStartDate);
cal.add(Calendar.DATE, iSafe2);
// ContentResolver cr = getContentResolver();
String str=res.getString(R.string.alert_safe);
String strDescription=res.getString(R.string.alert_safe_msg) + " " + new Integer(CycleManager.getSingletonObject().iAvgCycleTime-iSafe2-1);
ContentValues values = new ContentValues();
values.put("calendar_id", 1);
values.put("title", str);
values.put("description", strDescription);
values.put("dtstart", cal.getTimeInMillis());
values.put("dtend", cal.getTimeInMillis());
cr.insert(EVENTS_URI, values);
}
}
if (CycleManager.getSingletonObject().bUnsafeAlert)
{
if (iUnsafe1>0)
{
cal.setTime(dtStartDate);
cal.add(Calendar.DATE, iUnsafe1);
// ContentResolver cr = getContentResolver();
String str=res.getString(R.string.alert_unsafe);
String strDescription=res.getString(R.string.alert_unsafe_msg) + " " + new Integer(iFertile-iUnsafe1-1);
ContentValues values = new ContentValues();
values.put("calendar_id", 1);
values.put("title", str);
values.put("description", strDescription);
values.put("dtstart", cal.getTimeInMillis());
values.put("dtend", cal.getTimeInMillis());
cr.insert(EVENTS_URI, values);
}
if (iUnsafe2>0)
{
cal.setTime(dtStartDate);
cal.add(Calendar.DATE, iUnsafe2);
// ContentResolver cr = getContentResolver();
String str=res.getString(R.string.alert_unsafe);
String strDescription=res.getString(R.string.alert_unsafe_msg) + " " + new Integer(iSafe2-iUnsafe2-1);
ContentValues values = new ContentValues();
values.put("calendar_id", 1);
values.put("title", str);
values.put("description", strDescription);
values.put("dtstart", cal.getTimeInMillis());
values.put("dtend", cal.getTimeInMillis());
cr.insert(EVENTS_URI, values);
}
}
if (CycleManager.getSingletonObject().bFertileAlert && iFertile>0)
{
cal.setTime(dtStartDate);
cal.add(Calendar.DATE, iFertile);
// ContentResolver cr = getContentResolver();
String str=res.getString(R.string.alert_fertile);
String strDescription=res.getString(R.string.alert_fertile_msg) + " " + new Integer(iUnsafe2-iFertile-1);
ContentValues values = new ContentValues();
values.put("calendar_id", 1);
values.put("title", str);
values.put("description", strDescription);
values.put("dtstart", cal.getTimeInMillis());
values.put("dtend", cal.getTimeInMillis());
cr.insert(EVENTS_URI, values);
}
if (CycleManager.getSingletonObject().bPMSAlert)
{
cal.setTime(dtStartDate);
cal.add(Calendar.DATE, iStart-7);
// ContentResolver cr = getContentResolver();
String str=res.getString(R.string.alert_pms);
String strDescription=res.getString(R.string.alert_pms_msg);
ContentValues values = new ContentValues();
values.put("calendar_id", 1);
values.put("title", str);
values.put("description", strDescription);
values.put("dtstart", cal.getTimeInMillis());
values.put("dtend", cal.getTimeInMillis());
cr.insert(EVENTS_URI, values);
}
}
}
private String getCalendarUriBase(Activity act){
String calendarUriBase = null;
Uri calendars = Uri.parse("content://calendar/calendars");
Cursor managedCursor = null;
try
{
managedCursor = act.managedQuery(calendars, null, null, null, null);
}
catch (Exception e) {}
if (managedCursor != null)
{
calendarUriBase = "content://calendar/";
}
else
{
calendars = Uri.parse("content://com.android.calendar/calendars");
try
{
managedCursor = act.managedQuery(calendars, null, null, null, null);
}
catch (Exception e){}
if (managedCursor != null)
{
calendarUriBase = "content://com.android.calendar/";
}
}
return calendarUriBase;
}
最佳答案
这是不可能的,因为其他类不知道有一个叫做 SharedPreference 的东西.. 所以
public void test(Context c)
{
SharedPreferences preferences1 =c.getSharedPreferences("myPreferences", 0);
}
在打电话的时候
CycleManager.getSingletonObject().test(this);//call functions of another class
再一次
c.getContentResolver().delete(EVENTS_URI, null, null);
关于android - 无法启动 Activity ComponentInfo java.lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6922495/
在 Tomcat 6/Ubuntu 12.04 上启动 Grails 2.1.0 应用程序时出现以下错误。 Error 500 - Internal Server Error. groovy.lang
在运行 Storm 拓扑时,我收到此错误。拓扑完美运行 5 分钟,没有任何错误,然后失败。我正在使用 Config.TOPOLOGY_TICK_TUPLE_FREQ_SECS as 300 sec i
我有一个 jsp 代码在其中一台机器上运行良好。但是当我复制到另一台机器时,我得到了这个 no such method found 异常。我是 Spring 的新手。有人可以解释我错过了什么吗? 以下
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我的代码在下面给出了一个错误; Exception in thread "main" java.lang.NoSuchMethodError: com/myApp/Client.cypherCBC(L
我正在尝试一个 Restful web 服务示例,所以当我要访问 url 时,我遇到了异常 java.lang.NoSuchMethodError: jersey.repackaged.com.goo
我正在将一个 Spring web 项目转换为一个 Maven 项目,但我收到了这个错误: java.lang.NoSuchMethodError: org.jboss.logging.Logger.
在我的项目中,我有一个像这样的枚举: public enum MyEnum { FIRST(1), SECOND(2); private int value; private MyEnum(int v
我创建了这个简单的示例,用于读取 Linux 正常运行时间: public String getMachineUptime() throws IOException { String[] di
我正在使用 Eclipse,并且正在使用 Java。我的目标是使用 bogoSort 方法对 vector 进行排序在一个 vector (vectorExample)中适应我的 vector 类型,
我正在运行以下查询。它显示一条错误消息。如何解决这个错误? ListrouteList=null; List companyList = session.createS
我有以下模型类: @Entity @Table(name="user_content") @org.hibernate.annotations.NamedQueries({ @org.
我有那个错误。这是我的代码: GmailSettingsService service = new GmailSettingsService(APPLICATION_NAME, DOMAIN_NAME
实际上我在执行我的java程序时遇到了下面提到的错误 Exception in thread "pool-1-thread-1" java.lang.ClassCastException: jav
java.lang.ClassCastException: java.lang.Float cannot be cast to java.lang.String 我在以下代码中遇到此异常: Strin
我正在尝试从 linkedhashset 中检索随机元素。下面是我的代码,但它每次都给我异常。 private static void generateRandomUserId(Set userIds
我已经完成了 Android 中的代码: List spinnerArray = new ArrayList(); for (int i = 0; i item = (LinkedTreeMap)
这个问题已经有答案了: Explanation of ClassCastException in Java (12 个回答) 已关闭 6 年前。 我已经编写了 java 到 Json 的代码,同时从页
这个问题在这里已经有了答案: ClassCastException java.lang.Long cannot be cast to clojure.lang.IFn (4 个答案) 关闭 6 年前
我在运行时遇到问题来编译这段代码,这给我一个错误,java.lang.Integer 无法转换为 Java.lang.Double。如果有人帮助我更正此代码,我将非常高兴 double x; pu
我是一名优秀的程序员,十分优秀!