如何从代码更改滑动按钮的状态?

时间:2019-03-29 13:50:34

标签: android

我在我的应用程序中使用com.ebanx:swipe-button库中的滑动按钮,并且我希望更改滑动按钮的状态以启用(基于通过另一台蓝牙设备接收的信息)打开按钮的活动。即:在没有任何用户输入的情况下,我必须更改滑动按钮的状态才能启用!

This is the swipe Button

2 个答案:

答案 0 :(得分:0)

您可以使用toggleState()

SwipeButton mSwipeButton; = findViewById(R.id.my_swipe_button);
mSwipeButton.toggleState();

如果使用的旧版本中没有可用的toggleState,请使用collapseButton();expandButton();折叠或展开滑动按钮

答案 1 :(得分:0)

您使用的库有两个问题,首先是编码错误,其次是错误的文档,但事实并非如此。

使按钮处于活动状态:

        JsonNode schemaNode = JsonLoader.fromString(jsonSchema);
        JsonNode jsonData = JsonLoader.fromString(data);
        JsonSchemaFactory factory = JsonSchemaFactory.byDefault();
        JsonSchema schema = factory.getJsonSchema(schemaNode);

        ProcessingReport report = schema.validate(jsonData);

        if(report.isSuccess())
            return true;

        Iterator<ProcessingMessage> pmIt = report.iterator();

现在默认情况下,按钮状态为关闭,您可以在xml文件中进行更改,即在创建按钮的布局中,您将看到类似以下的内容:

SwipeButton swipe_btn = findViewById(R.id.swipe_btn);
swipe_btn.setEnabled(true);

最后要监视按钮的状态,您将必须听如下状态更改:

<com.ebanx.swipebtn.SwipeButton
        app:initial_state="disable" //change to enable will make button open by default
        app:has_activate_state="true"
        />

如果处于活动状态,则按钮处于打开状态,否则处于关闭状态。

  
    

注意:当我说“打开”时,我指的是将按钮切换为“开”,而当我说“关闭”时,则表示是反过来的(toggleOff)。

  

这里的错误是,当您使用swipe_btn.setOnStateChangeListener(new OnStateChangeListener() { @Override public void onStateChange(boolean active) { Toast.makeText(MainActivity.this, "IS "+active, Toast.LENGTH_LONG).show(); } }); 时,该按钮将被停用,这意味着它甚至不会响应单击事件,这是不正确的,因此解决方法是使用onStateChangeListener,就像我在上面使用的那样这样,当按钮打开时,您可以执行任何操作;当按钮关闭时,您仍然可以执行任何操作。

  
    

注意:库版本:“ com.ebanx:swipe-button:0.8.3”