使用非活动类从CompoundButton.OnCheckedChangeListener()内部更改用户界面

时间:2013-03-15 08:53:55

标签: java android

我正在编写一个代码,我正在使用Checkboxes类中的ActionListener创建动态non-Activity

现在我想从CompoundButton.OnCheckedChangeListener()更改一些用户界面。

每个checkbox代表一个警报。在Database中,每个警报都设置为column,指定警报是启用还是禁用,我需要访问数据库才能执行此操作。我正在编写以下代码:

public class DataBaseAdapter extends SQLiteOpenHelper 
{
    ....
    .... //onCreate, onUpdate, other methods used.
    ....
public TableLayout getAllAlarmList(Context con)
{
    SQLiteDatabase db = this.getReadableDatabase();
    for(int i=0;i<maxCount;i++) //maxCount number of rows in database
    {
        check[i]= new CheckBox(con);
        check[i].setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
        {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
            {
                if(isChecked)
                {

                }
                else
                {

                }
            }
        });
    }

}

现在我需要在这里添加代码,这使我能够添加数据库访问代码。怎么做。?

1 个答案:

答案 0 :(得分:0)

我不能这样做。由于Android的限制,Android使UI安全。因此不允许 Activity Class 以外的任何线程或类在用户界面中进行更改。

所以我做的最好的事情就是收集所有的警报(数据),然后发送Array并将数组发送回Activity类的调用方法,然后在此处列出。