Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法获取快速设置磁贴的引用_Java_Android - Fatal编程技术网

Java 无法获取快速设置磁贴的引用

Java 无法获取快速设置磁贴的引用,java,android,Java,Android,我可以使用onClick()方法设置qs磁贴的状态,但我还想使用主活动中的开关切换其状态。但是,我无法使用开关更改磁贴的状态,因为getQsTile在onClick()方法之外返回null } 我可以简单地从应用程序中删除开关,但我很想知道这里有什么问题,以及如何克服它 如果要从其他活动以编程方式更新互动程序,请使用SharedReferences并存储布尔值,然后在互动程序服务类的onStartListening方法中编写代码以更新互动程序。(每次向下滑动面板时都会调用onStartListe

我可以使用onClick()方法设置qs磁贴的状态,但我还想使用主活动中的开关切换其状态。但是,我无法使用开关更改磁贴的状态,因为getQsTile在onClick()方法之外返回null

}


我可以简单地从应用程序中删除开关,但我很想知道这里有什么问题,以及如何克服它

如果要从其他活动以编程方式更新互动程序,请使用SharedReferences并存储布尔值,然后在互动程序服务类的onStartListening方法中编写代码以更新互动程序。(每次向下滑动面板时都会调用onStartListening)。

请将您的代码作为问题的一部分,而不是在这些链接中的image.code
public class AwesomeTileService extends TileService{

Tile tile;
public Activity activity;

public AwesomeTileService(Activity activity){
    this.activity=activity;
    Switch switch1 = (Switch)this.activity.findViewById(R.id.switch1);
    switch1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            tile=getQsTile(); //tile is null

            SwitchState(); //SwitchState does not work with onCheckedChanged
            Log.v("Switch State=", ""+isChecked);
        }

    });
}

public AwesomeTileService(){
    //zero arg constructor
}


@Override
public void onTileAdded() {
    tile=getQsTile();


    tile.setState(Tile.STATE_INACTIVE);
    tile.updateTile();
}

@Override
public void onClick() {

    tile=getQsTile(); //tile is not null
    SwitchState(); //SwitchState method works with onClick
}

public void SwitchState(){

    if(tile!=null){
        if (tile.getState() == Tile.STATE_INACTIVE) {
            tile.setState(Tile.STATE_ACTIVE);
        }
        else{
            tile.setState(Tile.STATE_INACTIVE);
        }
        tile.updateTile();

    }
}