android中的非扩展类

时间:2010-10-08 00:44:25

标签: java android

我有一个类Scores.java我需要知道创建这些的正确方法。我得到“构造函数Scores没有定义。我是否必须扩展Android中的所有内容?

package com.threeuglymen.android.stuff;

import android.app.Application;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.preference.PreferenceManager;
import android.util.Log;


public class Scores {

    private Context mycontext;

    public Scores (Context context) {
        // TODO Auto-generated method stub
        this.mycontext = context;
    }

    public void resetScores(){
        try {
        SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(mycontext); 
        Editor edit = pref.edit();

        edit.putInt("correct", 0);
        edit.putInt("incorrect", 0);
        edit.commit();
        } catch (Exception e) {
            Log.d("Scores", "Exception:" + e.toString());
        }

        return;
    }

}

任何指导的权利

埃里克

3 个答案:

答案 0 :(得分:0)

你可能想要:

public class ScoresSub extends Scores
{
  public ScoresSub(Context context)
  {
     super(context);
  }
}

由于您定义了一个在Scores中使用参数的构造函数,因此编译器不提供no-arg。

答案 1 :(得分:0)

当你创建一个类时,你并不总是从另一个类扩展,所有的clases都是从Object类扩展的,如果你扩展另一个类,就像在这种情况下类Application一样,那是因为你需要它的功能而你想要创建一个它的变化或覆盖一些方法,我认为在这种情况下你甚至不需要从Application扩展,因为你的类不是一个应用程序所以:

public class Scores {

    private Context mycontext;

    public Scores () {
        this.mycontext = null;
    }

    public Scores (Context context) {
        // TODO Auto-generated method stub
        this.mycontext = context;
    }

    public void resetScores(){
        try {
        SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(mycontext); 
        Editor edit = pref.edit();

        edit.putInt("correct", 0);
        edit.putInt("incorrect", 0);
        edit.commit();
        } catch (Exception e) {
            Log.d("Scores", "Exception:" + e.toString());
        }

        return;
    }

}

我不认为你应该有问题。

答案 2 :(得分:0)

您目前的工作应该是什么。在您的主要活动中,请勿致电

Scores score = new Scores();

而是打电话

Scores score = new Scores(getContext());

让我知道这是否有效。