当我必须使用带有ListView的经典适配器时,我在ListView中更新我的数据,如下所示:
myAdapter.swapArray(data);
public swapArray(List<Data> data) {
clear();
addAll(data);
notifyDataSetChanged();
}
Run Code Online (Sandbox Code Playgroud)
我想知道RecyclerView的最佳实践是什么.因为在RecyclerView适配器,你不能做clear,并addAll在ListView控件.
所以我尝试了一下notifyDataSetChanged,但它没有用.然后我尝试在我的视图上使用swapAdapter:
List<Data> data = newData;
MyRecyclerAdapter adapter = new MyRecyclerAdapter(data);
// swapAdapter on my recyclerView (instead of a .setAdapter like with a classic listView).
recyclerViewList.swapAdapter(adapter, false);
Run Code Online (Sandbox Code Playgroud)
但是使用这个最后的解决方案,我仍然需要创建我的适配器的新实例,我觉得它不是最好的解决方案.我应该能够在没有新的情况下更改我的数据MyRecyclerAdapter.
我正在尝试将我的Android应用程序连接到本地主机URL,这要归功于wamp服务器,但它不起作用.我的目标是获取json数据并解析这些数据.对于我的测试,我使用的设备不是模拟器,我在AndroidManifest.xml中使用权限:
<uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud)
我的网址看起来像这样:
String url = "http://10.0.2.2:8080/tests/PhpProject1/connectionBDD.php";
Run Code Online (Sandbox Code Playgroud)
我试过了 :
http://localhost/
http://10.0.2.2:8080/
http://10.0.2.2/
Run Code Online (Sandbox Code Playgroud)
但它到目前为止从未奏效:
java.net.ConnectException: failed to connect to localhost/127.0.0.1 (port 80): connect failed: ECONNREFUSED (Connection refused)
failed to connect to /10.0.2.2 (port 8080): connect failed: ETIMEDOUT (Connection timed out)
java.net.ConnectException: failed to connect to /10.0.2.2 (port 80): connect failed: ETIMEDOUT (Connection timed out)
Run Code Online (Sandbox Code Playgroud)
然后我尝试在互联网上找到一个json url测试:http://headers.jsontest.com/
它工作得很好,我在这个地址得到了json数据.所以我想我的代码很好,这里的问题是我的localhost网址,我不知道应该是什么样的确切形式..我读了很多关于它的线程,但我没有找到解决方案.
这是我的代码:
主要活动 :
public class MainActivity extends Activity {
private String url = "http://10.0.2.2:8080/tests/PhpProject1/connectionBDD.php";
private ListView lv = null; …Run Code Online (Sandbox Code Playgroud) 我正在尝试了解 PWA 的工作原理,因此我想在 Heroku 上部署我的 React PWA。成功部署且没有错误后,当我访问我的 Web 应用程序页面时,我会看到以下白页:404 Not Found nginx
经过一番研究后我发现,我需要使用这个构建包: https: //github.com/heroku/heroku-buildpack-static
我创建了一个static.json配置文件:
{
"root": "dist/",
"clean_urls": true,
"routes": {
"/**": "index.html"
}
}
Run Code Online (Sandbox Code Playgroud)
我添加了(就像那里解释的那样: https: //gist.github.com/hone/24b06869b4c1eca701f9)这两个构建包:
$ heroku buildpacks:clear
$ heroku buildpacks:add heroku/nodejs
$ heroku buildpacks:add https://github.com/hone/heroku-buildpack-static
Run Code Online (Sandbox Code Playgroud)
但它仍然不起作用。当我访问我的页面时,仍然出现 404 not found。
我在日志中找不到明确的错误消息,部署后我的heroku 日志如下:
2017-08-24T08:40:15.818194+00:00 heroku[web.1]: Restarting
2017-08-24T08:40:15.819113+00:00 heroku[web.1]: State changed from up to starting
2017-08-24T08:40:15.520597+00:00 app[api]: Release v21 created by user me@gmail.com
2017-08-24T08:40:16.760078+00:00 app[web.1]: Going down, …Run Code Online (Sandbox Code Playgroud) 我试图测试通过简单的布尔值更新状态时,是否在父组件中正确渲染了其子组件。在父组件下面:
class Parent extends Component {
...
render() {
const { ..., isReady } = this.state;
const props = { ... };
return(
<div className="container page-content">
{ isReady ?
<Child {...props} />
:
<div id="loader-wrapper">
<div id="loader"></div>
</div>
}
</div>
);
}
}
Run Code Online (Sandbox Code Playgroud)
我的测试是:
beforeEach(() => {
wrapper = mount(<Parent isReady={true}/>);
});
it('Should render Child component', () => {
expect(wrapper.prop('isReady')).to.equal(true); // Working !!
expect(wrapper.find(Child).length).to.equal(1); // Not Working -> equal 0
});
Run Code Online (Sandbox Code Playgroud)
到目前为止,我再次检查了状态是否正确更改,当我检查包装程序的isReady状态时,这似乎是正确的。我很确定这部分工作正常。
我也尝试了wrapper.html(),即使isReady为true,我的加载程序也只能看到div部分。<form>..</form>永远不会呈现应为a的Child组件。因此,如果我尝试类似的操作:expect(wrapper.find('form').length).to.equal(1);则两者都不起作用。我不明白为什么。
此处的最佳实践应该是什么,以测试我的父母行为并查看我的子组件是否正确呈现?
更新:
1 …
我试图弄清楚如何创建一个仅右边框透明的形状:
+ + + + + + + +
+
+
+
+ + + + + + + +
Run Code Online (Sandbox Code Playgroud)
我想知道我该怎么做。目前我只有代表矩形的基本形状,但从现在起我不确定是否可以做我想做的事情:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#07000000" /> <!-- Transparent background -->
<corners
android:topLeftRadius="10dp"
android:bottomLeftRadius="10dp" />
<stroke
android:width="2dp"
android:color="@android:color/white" />
</shape>
Run Code Online (Sandbox Code Playgroud) 我想知道是否可以使用Guava Range对自定义对象列表进行迭代。
我有这个示例,它应该在列表中获得5个项目的间隔:
Range<CustomObject> range = Range.closed(customObjectList.get(Auxiliar.index), customObjectList.get(Auxiliar.index + 4));
Run Code Online (Sandbox Code Playgroud)
然后,我想遍历此范围以获得我的对象列表,以便能够执行以下操作:
List<CustomObject> list = new ArrayList<CustomObject>();
for(CustomObject c : range){
list.add(c)
}
Run Code Online (Sandbox Code Playgroud)
目前,我不能做一个番石榴范围本的foreach,而不是我要做的,像这里:
for(int grade : ContiguousSet.create(yourRange, DiscreteDomain.integers())) {
...
}
Run Code Online (Sandbox Code Playgroud)
但是这里的问题是,我不能使用DiscreteDomain.CustomObject()。
有没有办法将此Guava Range与CustomObject列表一起使用?