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