首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >相关微调器

相关微调器
EN

Stack Overflow用户
提问于 2011-05-28 01:37:07
回答 1查看 291关注 0票数 1

这个应用程序应该有四个或更多的相关微调器,当它们的“父”微调器选择发生变化时应该重新加载-例如有两个微调器:房子和房间-如果你选择一个房子,房间微调器应该从sqlite数据库重新加载。

我尝试了两种方法: MySpinner类在其构造函数中接受一个“子”旋转器,并告诉该子类在OnSelectedItem被触发时进行自我更新,如下所示

代码语言:javascript
复制
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
    if (MySpinner.this.mChild.equals(null) == false) {
        MySpinner.this.mChild.updateData((int)id);              
        }
    }

孩子的updateData是

代码语言:javascript
复制
public void updateData (int parentValue) {
    new backgroundTask().execute("create");
}

哪些后台任务是查询sqlite数据库的AsyncTask:

代码语言:javascript
复制
@Override
protected Void doInBackground(String... params) { 
    Db = new MyDatabase(mContext);  
    Db.open();
    if(params[0] == "create") {
        if (mTable.equals("T_room")){                               
            mCursor = mDb.getRooms(mParentValue);
        }
    }
    return null;
}

我的第二种方法是直接在activity.java文件中创建所有微调器。第二种方法让我为所有4个或更多微调函数实现一个AsyncTask,并根据谁使用什么值调用数据库来选择要从数据库查询什么。

第一种方法在异步任务中唯一的“真正”代码行崩溃,第二种方法在异步任务中使用自动设置微调和乱七八糟的if让我抓狂。

我无论如何都不是一个程序员,我想知道是否有人精通面向对象编程,可以告诉我什么是好的编码行为来解决我的特定问题(几个在选择时相互更新的微调工具)。

EN

回答 1

Stack Overflow用户

发布于 2011-06-30 00:17:26

这很有趣,此时此刻我正在做类似的事情。只需保留对适配器的引用,并在onItemSelected内部使用adapter.getItem(pos)访问对象。然后,您可以使用此对象来更新第二个微调器适配器。只需关注UI线程。我想用一种更干净的方式来做这件事,但我不知道该怎么做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6155809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档