小编Cor*_*ant的帖子

创建服务以在Android应用程序中的所有活动之间共享数据库连接?

我一直在试图找出在我的Android应用程序中处理本地数据库访问的最佳方法.我在每个活动中都创建了一个数据库连接对象,但这似乎是一种非常低效的方法.做了一些研究我偶然发现了这个讨论.使用服务似乎是一种很好的做事方式,但我无法正常工作.这是我有的:

服务:

public class DBservice extends Service {
    private final static String TAG = "net.iamcorbin.frolfcard";
    public DBconn db;

    private DBbinder mDatabaseBinder = new DBbinder();

    @Override
    public void onCreate() {
        super.onCreate();
        Log.d(TAG,"DBservice : onCreate");
        mDatabaseBinder.mDatabaseService = this;
        this.db = new DBconn(getApplicationContext());
        this.db.open();
    }

    @Override
    public IBinder onBind(Intent intent) {
        Log.d(TAG,"DBservice : onBind");
        return mDatabaseBinder;
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startID) {
        Log.d(TAG,"DBservice : onStartCommand");
        return Service.START_STICKY;
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        Log.d(TAG,"DBservice : …
Run Code Online (Sandbox Code Playgroud)

android

7
推荐指数
1
解决办法
6993
查看次数

在ListView中设置最初检查的CheckedTextViews for choiceMode ="multipleChoice"

我正在努力尝试使用android的ListView multipleChoice模式.这是我想要做的:

我在游戏设置屏幕中有一个"玩家"按钮.单击它时,它会打开另一个活动,其中包含CheckedTextViews中数据库中所有玩家的multipleChoice ListView.我有这个工作正常,当你点击一个播放器时,他们将通过查询添加到游戏中或从游戏中移除到game_players表.

我遇到的问题是设置ListView,以便在活动打开时最初检查已添加到游戏中的玩家.

我试图通过遍历ListView活动中的整个列表来执行此操作,但这不起作用,因为无法访问当前不可见的视图以进行检查.

所以现在我正在尝试在bindView中的扩展SimpleCursorAdapter中执行此操作,但我甚至无法使用这个简单的代码:

@Override
public void bindView(View _view, Context _context, Cursor _cursor) {
    String name = c.getString(c.getColumnIndexOrThrow(from[0]));

    this.player = (CheckedTextView)_view.findViewById(to[0]);
    this.player.setText(name);
    this.player.setChecked(true);
}
Run Code Online (Sandbox Code Playgroud)

它使用setText()正确设置了播放器的名称,但是我无法在bindView中检查任何框.还有其他地方我应该这样做,还是我只是做错了?

android

1
推荐指数
1
解决办法
2258
查看次数

标签 统计

android ×2