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