Android SQLite数据库“;上下文“;传递给适配器

Android SQLite数据库“;上下文“;传递给适配器,android,sqlite,android-context,Android,Sqlite,Android Context,我在android应用程序中使用了SQLite db。 因为我是初学者,所以在理解示例中使用的“上下文”参数时遇到问题 我想调用适配器并从一个不扩展活动的类中插入/更新/删除记录,该活动在本例中代表上下文 现在我不知道在适配器中传递什么作为上下文,因为我不是从活动调用适配器 有人能解释一下吗?将ActivityName.this作为类上下文作为参数传递给适配器类的构造函数 ActivityName是在其中调用适配器的Activityclass的名称,正如您在示例中看到的,有一个上下文传递给ToL

我在android应用程序中使用了SQLite db。 因为我是初学者,所以在理解示例中使用的“上下文”参数时遇到问题

我想调用适配器并从一个不扩展活动的类中插入/更新/删除记录,该活动在本例中代表上下文

现在我不知道在适配器中传递什么作为上下文,因为我不是从活动调用适配器


有人能解释一下吗?

将ActivityName.this作为类上下文作为参数传递给适配器类的构造函数
ActivityName是在其中调用适配器的Activityclass的名称

,正如您在示例中看到的,有一个上下文传递给ToLoadApter。您可以将活动作为上下文或活动传递。getApplicationContext()。阅读上下文。

您可以想象上下文定义了sqlite数据库存在的位置/时间。sqlite数据库本身并不存在,它们存在于活动的范围内,因此存在于活动的上下文中

在接下来的步骤中,您必须理解上下文是一个动态的“事物”(在现实生活中,您可以想象它是某个人此时此地)。活动及其时刻的背景是个性化的,正如你的此时此地是你的,也是你的,并且随着时间的推移而改变

如果你是从你的活动中调用一个类,那么这就起作用了(从活动本身中传递活动的上下文是可以的——就像你对你的好友说的:这就是我现在的感觉)

一个简单的全面解决方案(灵丹妙药)是在MyActivity内创建一个静态上下文变量(contextVariable),并直接从MyActivity.contextVariable访问它。但这不起作用,因为当您试图声明/使用静态上下文变量时会出现错误

因此,如果您计划在未从主活动中调用的服务内使用sqlite,例如,由广播接收器触发的服务(服务和接收器本身都没有上下文),那么您必须从所述接收器内访问原始应用程序的上下文

访问原始活动的上下文很简单,但并不明显

这对我很有用(thanx@ZiGi和@Cristian):

这是工作代码中的一个示例,每次android设备连接到WIFI网络时,都会将导航数据上传到web上的数据库。我有一个接收器监听连接更改(作为单独的类直接称为“from”清单文件存在)


我希望这是有意义的,如果您想了解更多详细信息,请查看我在哪里有上述接收器的完整(基本)代码。

您能展示一些代码吗?代码发布在我使用的示例链接中。问题是我没有从活动中调用适配器。。。所以唯一的方法就是将活动一直传递到适配器?或者我可以用某种静态的方式来称呼上下文吗?thanx JayDeep,会接受你的anwser,这样你就能赢得声誉:)thanx Vladimir。它开始有意义了。。。我将从我的活动类传递上下文..ps:出于安全原因,sqlite db只存在于应用程序的沙箱中,因此您必须首先访问所述沙箱,也称为上下文。
 public class MyActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);

       Context contextNew = this;
       myClass(contextNew);
import android.app.Service;
import android.content.Context;

public class BatchUploadGpsData extends Service {
    public Context contextNew;

    @Override
    public void onCreate() {
        contextNew = getApplicationContext();