我的问题非常基础,我想知道从App Engine Python中的子项访问父实体的属性值的直接和正确的方法.例如,我有以下模型架构.我正在使用Python 2.7和NDB.
class Gallery(ndb.Model):
category = ndb.StringProperty()
title = ndb.StringProperty()
subtitle = ndb.StringProperty()
class Image(ndb.Model):
blob_key = ndb.BlobKeyProperty()
title = ndb.StringProperty()
gallery = ndb.StringProperty()
is_slider = ndb.StringProperty()
Run Code Online (Sandbox Code Playgroud)
这里"画廊"是"图像"的父母.他们形成一个实体组展览=> Gallery => Image.我想显示Image模型中的图像以及它们所属的图库细节.我可以从父级访问子实体(图库中的图像),但反之亦然.我不想在Gallery模型中将Image model用作StructuredProperty.我大部分时间都是基于其他标志而不是图库显示所有图像(如果is_slider ="是",则会从所有图像生成幻灯片.所以直接从图像查询)但仍然希望显示相关图库的信息为什么我想知道如何访问父数据.
我觉得这是一个非常通用的问题,并寻找一个简单的解决方案,如直接访问父级,而不是回到实体组的顶部,并使用一些复杂的逻辑查询Gallery模型.任何帮助表示赞赏.
google-app-engine python-2.7 app-engine-ndb google-cloud-datastore
我写了一个这样的程序:
from multiprocessing import Process, Manager
def worker(i):
x[i].append(i)
if __name__ == '__main__':
manager = Manager()
x = manager.list()
for i in range(5):
x.append([])
p = []
for i in range(5):
p.append(Process(target=worker, args=(i,)))
p[i].start()
for i in range(5):
p[i].join()
print x
Run Code Online (Sandbox Code Playgroud)
我想在进程之间创建一个列表的共享列表,每个进程都会修改其中的列表.但是这个程序的结果是一个空列表列表:[[],[],[],[],[]].
出了什么问题?
我想以编程方式将此xml片段添加到其他片段.可能吗?
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment" />
Run Code Online (Sandbox Code Playgroud) 几个小时以来我一直在努力.我还检查了文档和几个主题.我发现这个代码有两个主题,两个人都说代码工作正常,但不能在我的电脑上运行.第一个Toast出现了,但第二个Toast出现了.怎么了?
public class HelloAndroid2 extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Intent intent = new Intent(this, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,
intent, PendingIntent.FLAG_ONE_SHOT);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (10 * 1000), pendingIntent);
Toast.makeText(this, "Alarm set", Toast.LENGTH_LONG).show();
}
public final class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Alarm worked.", Toast.LENGTH_LONG).show();
}
}
Run Code Online (Sandbox Code Playgroud)
}
我正在尝试设置两个Android设备通过wifi相互通信.我所经历的一些链接建议alljoyn sdk以实现这一目标.
有一个sdk下载,但没有关于如何设置环境的文档.
我在Android Studio 3.0 Canary 9中遇到了几个错误.这些错误是"无法解决:"android包,下面列出了一些.我刚安装了SDK的所有额外软件包,但我仍然遇到了一个gradle构建错误:
Error:(82, 13) Failed to resolve: com.android.support:multidex:1.0.2
Error:(85, 13) Failed to resolve: com.android.support:support-v13:26.0.0
Error:(89, 13) Failed to resolve: com.android.support:recyclerview-v7:26.0.0
Error:(97, 24) Failed to resolve: com.android.support.test:runner:1.0.0
Run Code Online (Sandbox Code Playgroud)
以及一些与测试和支持库有关的软件包.
这是我的构建脚本:
buildscript {
repositories {
jcenter()
mavenCentral()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0-alpha9'
classpath 'com.google.gms:google-services:3.1.0'
classpath 'com.google.firebase:firebase-plugins:1.1.1'
}
}
Run Code Online (Sandbox Code Playgroud)
我真的不确定为什么这不能建立.我刚刚更新了所有的软件包,所有的支持库在26.0.0 - >都是一样的compileSdkVersion 26
非常感谢您的任何建议!
[编辑] - 这是我的gradle构建日志
Error:Could not resolve all files for configuration ':app:debugCompileClasspath'.
> Could not find com.android.support:multidex:1.0.2.
Searched in the following locations:
file:/Users/bcalabro/Library/Android/sdk/extras/m2repository/com/android/support/multidex/1.0.2/multidex-1.0.2.pom
file:/Users/bcalabro/Library/Android/sdk/extras/m2repository/com/android/support/multidex/1.0.2/multidex-1.0.2.jar
file:/Users/bcalabro/Library/Android/sdk/extras/google/m2repository/com/android/support/multidex/1.0.2/multidex-1.0.2.pom
file:/Users/bcalabro/Library/Android/sdk/extras/google/m2repository/com/android/support/multidex/1.0.2/multidex-1.0.2.jar …Run Code Online (Sandbox Code Playgroud) 如何将String转换为Object?实际上,我想设置
clientSession.setAttribute("username", "abc")
Run Code Online (Sandbox Code Playgroud)
但是,它表明
java.lang.String given, required java.lang.Object.
Run Code Online (Sandbox Code Playgroud) 我有一个带有几个项目的VS2013解决方案(C#WPF应用程序和类库).每个项目的"平台目标"都设置为"任何CPU".我的印象是,最终的EXE将在64位PC上运行为64位应用程序,在32位PC上运行32位应用程序.它是否正确?我的开发PC是64位,但是当我运行应用程序(独立或通过VS调试)时,它在任务管理器中显示为"foo.exe*32".这里发生了什么?
我们有一个拥有32位机器的初级开发人员.他还能打开解决方案并在VS中运行吗?
此外,某些项目引用了第三方DLL.供应商提供32位和64位版本 - 项目应引用哪一个?如果我引用32位DLL将阻止应用程序作为64位应用程序运行?如果我引用64位版本,这会给32位开发人员带来问题吗?那么最终用户呢 - 我的安装程序是否需要检查操作系统版本并复制相应的DLL?
最后,通过NuGet引用的DLL怎么样?NuGet是否安装了32位或64位版本的DLL?如何处理32位或64位最终用户安装?
我正面临一个奇怪的问题,我正在设置TextView的背景@android:color/holo_blue_bright,期望它是亮蓝色,只是发现它在设备上是某种亮绿色.
XML
<TextView
android:id="@+id/tv_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:background="@drawable/chat_bubble"
android:maxWidth="300dp"
android:padding="5dp"
android:singleLine="false"
android:textSize="16sp" />
Run Code Online (Sandbox Code Playgroud)
@绘制/ chat_bubble
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/chat_bubble_background" />
<corners android:radius="5dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)
colors.xml(只是相关的行)
<color name="chat_bubble_background">@android:color/holo_blue_bright</color>
Run Code Online (Sandbox Code Playgroud)
以上设置产生了这个.每条消息都是TextView

我想也许是因为我的设备显示不同的颜色或其他东西,所以我尝试了更多的全息颜色,但它们看起来都应该是应该的
@android:color/holo_green_light给出

@android:color/holo_green_dark给出

甚至@android:color/holo_orange_light和@android:color/holo_purple看起来还可以


除了蓝色的:
@android:color/holo_blue_light给出

@android:color/holo_blue_dark给出

所有蓝色看起来都相似,但不是完全相同的绿色.也没有绿色作为同色调holo_green_light或holo_green_dark.
我以为这是什么?一切看起来都不错,但不是蓝色的?然后去检查HEX holo_blue_bright是什么,我在这里找到它(它的#FF00DDFF).
所以我试着直接使用那个HEX值,而不是使用预定义的全息颜色.

Android studio(v1.2)告诉我它们与我的预期完全一样.
但是,当我改变的时候
<solid android:color="@color/chat_bubble_background" />
Run Code Online (Sandbox Code Playgroud)
至
<solid android:color="@color/chat_bubble_background2" />
Run Code Online (Sandbox Code Playgroud)
使用#FF00DDFF …
我尝试与谷歌一起使用OAuth.我收到一个使用POST的代码
https://accounts.google.com/o/oauth2/v2/auth
Run Code Online (Sandbox Code Playgroud)
然后我尝试通过POST获取访问令牌
https://www.googleapis.com/oauth2/v4/token
Run Code Online (Sandbox Code Playgroud)
但这会给我一个"未找到"的错误.这个URI错了吗?感谢你的支持...
android ×5
java ×2
alarmmanager ×1
alljoyn ×1
c# ×1
colors ×1
google-maps ×1
oauth ×1
python ×1
python-2.7 ×1