我已经看了很多教程,让ListView在侧面有字母(如联系人列表),但他们似乎都使用了ListActivity类和/或数据库中的数据,而我只是使用了ListView(没有特殊的Activity)和一个ArrayList的数据.有谁知道如何在我自己的ListView的联系人列表中实现该字母滚动功能?
再次编辑
我按照这个教程,我认为最终会使它工作,但我仍然被迫关闭.
class AlphabeticalAdapter extends ArrayAdapter<String> implements SectionIndexer
{
private HashMap<String, Integer> alphaIndexer;
private String[] sections;
public AlphabeticalAdapter(Context c, int resource, List<String> data)
{
super(c, resource, data);
for (int i = 0; i < data.size(); i++)
{
String s = data.get(i).substring(0, 1).toUpperCase();
alphaIndexer.put(s, i);
}
Set<String> sectionLetters = alphaIndexer.keySet();
ArrayList<String> sectionList = new ArrayList<String>(sectionLetters);
Collections.sort(sectionList);
sections = new String[sectionList.size()];
sectionList.toArray(sections);
}
public int getPositionForSection(int section)
{
return alphaIndexer.get(sections[section]);
}
public int getSectionForPosition(int position)
{
return 1;
} …Run Code Online (Sandbox Code Playgroud) 我有一个使用create-react-app构建的网站,并在Firebase Hosting上托管.如何指定浏览器缓存需要在新部署后更新,并且理想情况下仅适用于自上次部署以来已更改的页面,资产和样式表?
有没有办法访问部署ID并在标头中包含该(或任何其他唯一标识符),以便浏览器可以与本地存储或缓存中的内容进行比较,并确定是否需要进行硬刷新?我查看了Firebase部署以及完整配置文档,但没有提及如何访问托管元数据,如上次部署时间.
将Cache-Control值设置为max-age=[any number]似乎并不理想,因为它忽略了下一次部署何时发生(除非有常规计划,否则可能无法开始).
我在iOS应用程序中使用Firebase,并有两个单独的Firebase项目,一个用于生产,一个用于开发.我的两个的.plist文件GoogleService-Info.plist和GoogleService-Info-Dev.plist,我已经能够选择基于在目标设置的标志- >构建设置- >其他斯威夫特标志.
在AppDelegate内didFinishLaunchingWithOptions:
#if DEBUG
let buildFor = "DEV"
#else
let buildFor = "PROD"
#endif
let firebasePlistFileName = buildFor == "DEV" ? "GoogleService-Info-Dev" : "GoogleService-Info"
let firebaseOptions = FIROptions(contentsOfFile: NSBundle.mainBundle().pathForResource(firebasePlistFileName, ofType: "plist"))
FIRApp.configureWithOptions(firebaseOptions) // line causing new Firebase error
Run Code Online (Sandbox Code Playgroud)
直到今天,当我遇到另一个Cocoapod项目的问题时,这一直很好.我认为当我清理Xcode项目或删除Derived Data文件夹时,它就开始发生了:
dyld: Library not loaded: @rpath/OtherPod.framework/OtherPod
Referenced from:
/Users/me/Library/Developer/CoreSimulator/Devices/12345678-E1C4-480F-B1D9-C10823DEA810/data/Containers/Bundle/Application/AE7B6EB0-43AB-CCCC-BBBB-AAAA71BF/MyApp.app/MyApp
Reason: image not found
Run Code Online (Sandbox Code Playgroud)
我最终通过在目标 - >常规 - >链接框架和库下选择我的应用程序解决了这个问题,然后在Workspace文件夹中添加了所有选项(其他7个pod项目),并将我添加的那些选项设置为可选项.从那时起,我一直面临着这篇文章标题中描述的错误:
2017-02-10 17:19:29.660 MyApp[12639:182433] +[NSData gtm_dataByGzippingData:error:]: unrecognized selector sent to class 0x10a0442e8
2017-02-10 17:19:29.680 …Run Code Online (Sandbox Code Playgroud) 我试图从Lambda函数中向第三方服务发出出站API请求,但该函数总是超时而没有任何错误.
以前发生在尝试s3.putObject在不同的功能(仍在相同的VPC /子网内)中执行操作时,我设法通过添加带有服务名称的端点com.amazonaws.us-east-1.s3并将其连接到与之关联的路由表来解决这个问题.此Lambda函数所在的VPC.
在网络框 - >安全组部分内的Lambda仪表板中,我看到此警告:
启用VPC后,您的Lambda函数将失去默认的Internet访问权限.如果您的功能需要外部Internet访问,请确保您的安全组允许出站连接,并确保您的VPC具有NAT网关.
我相信这个安全组允许出站连接,基于下面的出站规则表:
对于第二个要求,我可以确认此VPC具有NAT网关,因为在VPC仪表板上,在NAT网关选项卡中,出现的那个具有与之关联的VCP,并且该VPC与托管Lambda功能的VPC相同.
我按照指南创建了一个Flow Log来监控进出VPC的流量,希望看到这些出站请求确实被拒绝了.但是,在执行此操作并检查CloudWatch日志之后,所有记录都以ACCEPT OK或中结束NODATA.
如何授予我的VPC Lambda功能的互联网访问权限?是我最初试图遵循的指南,但我在第4步下陷入困境To create a public or private subnet:
从"更改为:"下拉菜单中,选择适当的路由表:对于私有子网,默认路由应指向NAT网关或NAT实例:
目标:0.0.0.0/0目标:nat- ...(或eni- ...)对于公有子网,默认路由应指向Internet网关:
目的地:0.0.0.0/0目标:igw- ...
对于此VPC中的所有四个子网,单击右侧的下拉列表Change to:仅显示一个选项,即已选择的选项rtb-xxxxxxxx.单击该路由表的链接,然后单击Summary旁边的Routes选项卡,我看到:
我阻止Lambda函数访问Internet的错误是什么?
我将React Native Slider组件添加到现有应用程序中,并且更喜欢使用它的onValueChangeprop,以便当用户向左和向右滑动旋钮时,一些Text组件的值会根据Slider的当前值进行更新.
在第一次尝试时,在松开滑块旋钮后会导致大量滞后.StackOverflow不允许我在这里嵌入gif所以我将保留链接:http://imgur.com/sEowpZt
当我注释掉onValueChange并使用时onSlidingComplete,根本没有延迟,但是两个文本组件在滑动停止之前不会更新它们的值,这会降低效果.我怀疑是在setState电话里面onValueChange都以更快的速度堆积弱于他们正在处理/完成,它是与我的应用程序的其他部分.为了证实这一点,我创建了一个新的react native app react-native init,将其添加_renderNameYourPriceModal()到代码中,在屏幕上包含一个按钮以打开它,并发现根本没有延迟:http://imgur.com/iZnvDML
如何确定减慢setState现有应用程序调用的速度?我发现了React Perf工具,我正在使用它来在Chrome开发者控制台中打印一个汇总表.
import Perf from 'react-native/Libraries/Renderer/shims/ReactPerf'
...
componentDidMount() {
setTimeout(() => {
Perf.start()
setTimeout(() => {
Perf.stop()
const measurements = Perf.getLastMeasurements()
Perf.printWasted(measurements)
}, 7000)
}, 1000)
}
Run Code Online (Sandbox Code Playgroud)
根据printWasted的Perf文档:
printWasted()
Perf.printWasted(measurements)分析器中最有用的部分.
"浪费"时间花在没有实际呈现任何内容的组件上,例如渲染保持不变,因此未触及DOM.
但我不确定如何解释结果以进行必要的更改.例如,运行我的应用程序时该表的前四行(总共有24行)如下所示:
我不知道该看的第一线,"ItemDetailsScreen > View"里面Owner > Component列,指的是因为有单独在该屏幕上20+意见.对于进一步的上下文,我正在使用React-Navigation,这是StackNavigator内部的嵌套屏幕,虽然我没有看到对此屏幕状态的更新如何导致在层次结构中的屏幕上重新渲染.是否有必要将此屏幕进一步分解为更多自定义子组件,以便我覆盖shouldComponentUpdate,或者使printWasted …
我正在努力解决一个编程问题,为明天的比赛练习,我想也许这将是一个讨论如何接近它的好地方.问题是本网站上的第一个问题:http://www.cs.rit.edu/~icpc/questions/2010/Oswego_2010.pdf
本网站上的常见问题解答提到算法和数据结构概念,以及设计模式,所以我想问一下如何解决这个问题并不是主题.这是我到目前为止(不多).我不明白如何解决这个问题.
public class Ape
{
public void computeOutput(int weight, int[] capacities, int[] snackLosses)
{
//not sure what to do
}
public static void main(String [] args) throws FileNotFoundException
{
Ape ape = new Ape();
File file = new File(args[0]);
Scanner in = new Scanner(file);
int totalWeight = in.nextInt();
int n = in.nextInt();
int[] capacities = new int[n];
int[] snackLosses = new int[n];
for (int i = 0; i < n; i++)
{
capacities[i] = in.nextInt();
snackLosses[i] …Run Code Online (Sandbox Code Playgroud) 我正在创建一个Android应用程序,我的应用程序的UI在下面给出.
单击提交按钮,我需要选中复选框和单选按钮值.
未检查示例Linux,检查cc(单选按钮).
记录在列表视图中动态填充,但我无法使其正常工作.那里有很多问题.
下面是我的布局以及java程序.建议我得到正确的值.

main.xml中
<ListView
android:id="@+id/my_list"
android:layout_width="fill_parent"
android:layout_height="199dp" />
<Button
android:id="@+id/submit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Submit"
/>
Run Code Online (Sandbox Code Playgroud)
row.xml
<TextView
android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+id/label"
android:layout_toRightOf="@+id/check"
android:textSize="20sp" >
</TextView>
<CheckBox
android:id="@+id/check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="4dip"
android:layout_marginRight="10dip"
android:focusable="false"
android:focusableInTouchMode="false" >
</CheckBox>
<RadioGroup
android:id="@+id/radioSex"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:orientation="horizontal" >
<RadioButton
android:id="@+id/to"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dip"
android:checked="true"
android:text="To" />
<RadioButton
android:id="@+id/cc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dip"
android:text="CC" />
</RadioGroup>
Run Code Online (Sandbox Code Playgroud)
MyAdaptor.java
public class MyAdapter extends ArrayAdapter<Model> {
private final List<Model> list;
private final Activity context;
boolean …Run Code Online (Sandbox Code Playgroud) 我有一个手动构建的 API 网关资源,如下所示:
GET
/assets/{items} - (points to S3 bucket)
/{proxy+} - points to Lambda function
Run Code Online (Sandbox Code Playgroud)
我想在 Cloudformation YAML 模板中模仿此设置,但不确定如何操作。这是我正在使用的当前模板(为简洁起见,部分缩小):
AWSTemplateFormatVersion: 2010-09-09
Parameters:
apiGatewayStageName:
Type: String
AllowedPattern: '^[a-zA-Z0-9]+[a-zA-Z0-9-]+[a-zA-Z0-9]+$'
Default: call
lambdaFunctionName:
Type: String
AllowedPattern: '^[a-zA-Z0-9]+[a-zA-Z0-9-]+[a-zA-Z0-9]+$'
Default: my-function
s3BucketName:
Type: String
AllowedPattern: '^[a-zA-Z0-9]+[a-zA-Z0-9-]+[a-zA-Z0-9]+$'
Resources:
apiGateway:
Type: 'AWS::ApiGateway::RestApi'
Properties:
Name: my-api
Description: My API
Metadata:
...
apiGatewayRootMethod:
Type: 'AWS::ApiGateway::Method'
Properties:
AuthorizationType: NONE
HttpMethod: POST
Integration:
IntegrationHttpMethod: POST
Type: AWS_PROXY
Uri: !Sub
- >-
arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${lambdaArn}/invocations
- lambdaArn: !GetAtt lambdaFunction.Arn
ResourceId: !GetAtt apiGateway.RootResourceId
RestApiId: …Run Code Online (Sandbox Code Playgroud) 我有一个Python程序,该程序向我的项目的Firebase数据库REST API发送大量补丁请求,每15分钟大约5-15k个请求。我首先尝试同时发送这些消息,将每个调用放入自己的线程中,然后反复出现此错误:
发生异常:HTTPSConnectionPool(host ='my-app.firebaseio.com',port = 443):URL超过最大重试次数:/items/item-id/.json(由NewConnectionError(':导致:无法建立新连接) :[Errno 8]节点名或服务名均未提供,或者未知',))
当我限制项目的数量,以便每个间隔仅发生约100个请求时,就没有问题。我尝试做的一件事是分散请求,使请求每15分钟发生60秒,但这仍然没有用。
传递给每个线程的函数如下所示:
def make_request(self, val):
url = "https://my-project.firebaseio.com/items/" + self.item_id + "/.json"
try:
self.s.patch(url, json.dumps({"my-key": val}), headers=None, timeout=None)
except Exception as e:
print("Exception occurred: " + str(e))
Run Code Online (Sandbox Code Playgroud) 我有一个Dockerfile-dev以此内容命名的文件:
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/core/sdk:3.1.102 AS build-env
WORKDIR /app
COPY . ./
RUN export DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER=0
# RUN dotnet restore
RUN dotnet publish -c Release -o out
# Build runtime image
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1.2
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "AspNetCore.dll"]
Run Code Online (Sandbox Code Playgroud)
docker build -f Dockerfile-dev .在 dotnet publish 命令上运行失败:
Step 5/9 : RUN dotnet publish -c Release -o out
---> Running in …Run Code Online (Sandbox Code Playgroud) android ×2
firebase ×2
amazon-vpc ×1
asp.net-core ×1
aws-lambda ×1
caching ×1
deployment ×1
docker ×1
ios ×1
java ×1
listview ×1
performance ×1
python ×1
react-native ×1
windows ×1
xcode ×1