在toast中使用的上下文

时间:2013-04-26 05:40:34

标签: android toast android-context

我有这样的代码

    package collfw;

public class A {
    int Eid;
    Context c1;

    public void setEid(int id) {
        if (id < 0) {
            Eid = 0;
        } else {
            Eid = id;
        }
    }

    public int getEid() {
        return Eid;
    }

    public contentvalues adddata()
    {
        contentvalues cv=new contentvalues()

        cv.put(ID,getEid());

        return cv;
    }

    public void retrivedata() {

        cursor c = db.rawquery("select * from employee");

        **Toast.maketext(c1, getEID, toast.Long_SHORT).show();**

    }
}

这里toast给了我错误,logcat显示println不能为null,如果我使用“context”则代替c1,那么它不接受, 任何人都可以请你解释一下上下文是什么,我怎么能在这里使用它。

4 个答案:

答案 0 :(得分:1)

你必须初始化你的c1。然后它才会起作用。

public A(Context context) {
        c1 = context;       
    }

因为toast就像一条消息,它会在Activity上显示出来。因此,您必须使用context的上下文

初始化activity

我希望这会对你有所帮助。

答案 1 :(得分:0)

使用,

Toast.makeText(getApplicationContext(), getEID, Toast.Long_SHORT).show();

答案 2 :(得分:0)

Toast.maketext(c1, getEID, toast.Long_SHORT).show();

c1可能未设置。至少我没有看到它在你的课上。 添加如下内容:

public A(Context ctx){
    c1 = ctx;
}

答案 3 :(得分:0)

如果您将直接从其他活动或分类

调用retrieveata方法,请使用以下内容
 public void retrivedata(Context c1) {

        cursor c = db.rawquery("select * from employee");

        **Toast.maketext(c1, getEID, toast.Long_SHORT).show();**

    }

否则为Context创建构造函数,并将Context作为参数。

Context c1;
Public A(Context ccc)
{
c1=ccc;
} 

然后在A类

中的任何地方使用c1

希望这会对你有所帮助。