我在2-3个月前买了一台Synology 213air NAS用于编程.
然后在尝试在我的NAS上手动设置git之前,我听说DSM4.3将提出Synology的官方软件包.所以我决定等.
带有Git包的DSM4.3现已推出:http://www.synology.fr/dsm/dsm_app.php#Git,但没有像我这样的初学者设置Git的教程.
所以:
我的应用管理家庭.一个家庭由1或N名成员组成.
我想要添加一个父母或两个以及0或N个孩子的可能性.儿童部分工作正常,但我很难与1或2个父母打交道.
这是我的家庭表格类型:
$builder
... many attributes
->add('parent1', MemberType::class)
->add('parent2', MemberType::class)
Run Code Online (Sandbox Code Playgroud)
Parent和parent2是OneToOne关联(Family to member).会员表格类型:
$builder
->add('firstName', TextType::class, [
'label' => 'Prénom',
'constraints' => array(
new NotBlank(),
new Length(array('max' => 150))
)
])
... many other attributes with choices or not
Run Code Online (Sandbox Code Playgroud)
我想到了一个复选框,如果未选中,则会将父2的字段变灰,但成员值都是必需的.因为SF2不验证我的表格.
如果我将required => false设置为这些字段(在构建器中),那么用户将有可能在不填充所有内容的情况下进行验证(我不想要).
我想创建以下过程:
我正在使用react-navigation,我无法更改默认"后退"按钮的区域设置.
在我的Stack Navigator中,如果我写下主页的标题,如果它不是太长,它将显示页面标题而不是"后退".
export const Root = StackNavigator({
Index: {
screen: Index,
navigationOptions: ({ navigation }) => ({
title: "My App name", //Not working when too long
}),
},
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点 ?
我认为我的ImageView存在问题.我创建了一个画廊,在那里我可以触摸图像并将其放在我的ImageView下面:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/fonddegrade">
<Gallery android:layout_height="wrap_content"
android:id="@+id/gallery"
android:layout_width="fill_parent" />
<ImageView android:layout_below="@+id/gallery"
android:layout_height="wrap_content"
android:id="@+id/laphoto"
android:layout_width="wrap_content"
android:layout_centerHorizontal="true"/>
Run Code Online (Sandbox Code Playgroud)
这完全适用于小图像,但不适用于大图像(3264*1952).当我触摸它(所以,试图把它放在ImageView中),我有一个错误,我的应用程序崩溃.这是我显示图像的java代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.photo);
File images; // Trouver le bon endroit de stockage
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()))
images = new File("/sdcard/MyPerformance/Photo");
else
images = this.getFilesDir();
images.mkdirs();
File[] imagelist = images.listFiles(new FilenameFilter(){
@Override
public boolean accept(File dir, String name)
{
return ((name.endsWith(".jpg"))||(name.endsWith(".png")));
}
});
mFiles = new String[imagelist.length];
for(int i = 0 ; i< imagelist.length; i++)
{
mFiles[i] = imagelist[i].getAbsolutePath();
} …Run Code Online (Sandbox Code Playgroud) 几天前,我收到了我发布的应用程序的崩溃日志.
错误来自ToneGenerator,我找不到问题.
在这里,我有一个倒数计时器,当计时器达到0时,应用程序启动一个ToneGenerator.
private void lanceMinuteur(int temps, int color){
if(color == 0)
minuteur.setTextColor(getResources().getColor(R.color.color_important));
else
minuteur.setTextColor(getResources().getColor(R.color.color_informative));
if(chronoLance){
chrono.cancel();
}
chronoLance = true;
chrono = new CountDownTimer((temps + 1) * 1000, 1000) {
public void onTick(long millisUntilFinished) {
minuteur.setText(String.valueOf(millisUntilFinished / 1000) + "\"");
}
public void onFinish() {
minuteur.setText("0\"");
minuteur.setTextColor(getResources().getColor(R.color.textcolor1design));
chronoLance = false;
final ToneGenerator tg = new ToneGenerator(AudioManager.STREAM_NOTIFICATION, 100); //The error is coming from here
tg.startTone(ToneGenerator.TONE_PROP_ACK);
}
}.start();
}
Run Code Online (Sandbox Code Playgroud)
我收到的崩溃日志:
java.lang.RuntimeException: Init failed
at android.media.ToneGenerator.native_setup(Native Method)
at android.media.ToneGenerator.<init>(ToneGenerator.java:798)
at ma.myperf.musculation.activ.GoPerformanceActivity$2.onFinish(GoPerformanceActivity.java:350)
at …Run Code Online (Sandbox Code Playgroud) 我有2项活动:在活动展示的信息给用户的列表,它的子活动,用户可以创建新的信息.
很明显,从第一个活动开始,我调用" startActivityForResult()",当用户将他想要的内容放入第二个活动时,我回到第一个活动,并在" onActivityResult()"函数中收到信息保存信息.
我的问题是"不要保持活动"选项.我读到这种情况发生在低内存电话中.但是,当设备关闭活动时,我们如何处理?
在我的示例中,当第二个活动被调用时,第一个活动被杀死,因此当我们返回到该活动时发生崩溃,并且我的信息丢失了.
处理这个问题的正确方法是什么?知道我无法在第二个活动中保存我的信息,因为我正在使用文件.
我有一个新的admob的问题.
这是我的代码,尝试在我的主要活动中创建和加载广告:
private void createAndLoadAd(String adUnitID, RelativeLayout rlRoot, View upperView){
adView = new AdView(this);
adView.setAdUnitId(adUnitID);
adView.setAdSize(AdSize.BANNER);
adView.setId(R.id.ad_view);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(AdView.LayoutParams.WRAP_CONTENT, AdView.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
params.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
rlRoot.addView(adView, params);
RelativeLayout.LayoutParams upperViewParams = (RelativeLayout.LayoutParams) upperView.getLayoutParams();
upperViewParams.addRule(RelativeLayout.ABOVE, R.id.ad_view);
upperView.setLayoutParams(upperViewParams);
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
checkGooglePlayServices(this);
}
Run Code Online (Sandbox Code Playgroud)
我的XML中有一个RelativeLayout,我试图将广告放在ExpandableListView(仅限子)下方.
这是我得到的:
W/Ads:获取广告响应时出现问题.ErrorCode:0 W /广告:
无法加载广告:0
我确切地知道我拥有AndroidManifest.xml中所需的所有权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:theme="@android:style/Theme.Translucent" />
Run Code Online (Sandbox Code Playgroud)
以下是gradle line:
compile 'com.google.android.gms:play-services:6.+'
Run Code Online (Sandbox Code Playgroud)
我读到错误可能来自adUnitID,我试图重新创建一个但不起作用.
也许有一些新的规则,如果应用程序没有在市场上发布,广告将无法正常工作?
这是有关问题的日志:
01-31 09:48:37.687 19580-19580/me.frozened.rappel I/Ads? Starting ad request. …Run Code Online (Sandbox Code Playgroud) 我正在使用react-navigation,这是我的结构:
根堆栈导航器:
export const Root = StackNavigator({
Index: {
screen: Index,
navigationOptions: ({ navigation }) => ({
}),
},
Cart: {
screen: Cart,
navigationOptions: ({ navigation }) => ({
title: 'Votre panier',
drawerLabel: 'Cart',
drawerIcon: ({ tintColor }) => <Icon theme={{ iconFamily: 'FontAwesome' }} size={26} name="shopping-basket" color={tintColor} />
}),
},
...
Run Code Online (Sandbox Code Playgroud)
我的结构看起来像这样:
- StackNavigator(Root)
- DrawerNavigator(索引)
- TabNavigator的
- 我的页面
- MyPage(使用不同数据格式化的同一页面)
- ...
所以我的问题是,我在哪里加载数据,初始化我的应用程序?我需要一个叫做一次的地方,在其他页面之前调用.
我的应用程序中显示的第一页是MyPage页面.但正如你所看到的,由于TabNavigator,如果我将我的函数放入其中,它将被多次调用.
有些人会在启动画面中说,但我使用的是主闪屏部件,而且我没有很多控件.
我想到了我们创建提供程序的App.js,但我认为这不是一个好主意?
const MyApp = () => {
//TODO We're loading the data here, I don't …Run Code Online (Sandbox Code Playgroud) 我正在使用可扩展列表视图,用户可以在其中选择数据.
用户可以选择组,也可以选择孩子.为了便于区分2,我有一个有2个选项的无线电组:
我需要的是隐藏第二种情况下的组指示符,然后在选择第一个选项时将其恢复.
这是我的代码:
rgLink.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if(checkedId == R.id.rb_link_subject){ //Here is the child mode
mLinkType = LINK_SUBJECT;
//elvSubject.setGroupIndicator(/*Here I need the default group indicator*/);
}
else{ //Here is the group mode
collapseAllChildren();
//The line below hide the group indicator
elvSubject.setGroupIndicator(null);
mLinkType = LINK_CATEGORY;
}
}
});
Run Code Online (Sandbox Code Playgroud)
我也在使用,为组项目:
style="?android:attr/listSeparatorTextViewStyle"
Run Code Online (Sandbox Code Playgroud)
所以基本上,我只需要一行代码来恢复默认组指标.我怎样才能做到这一点 ?
因为有时,我需要使用键盘上不存在的特殊字符将文本翻译成不同的语言,例如\xc4\xb1, \xc5\x9f, \xc3\xb1, \xc4\x9f。
我创建了一个脚本,将->AutoHotKey的组合转换为,以与其他字符相同的方式。^ + ^ + s\xc5\x9f
该脚本工作正常,但仅当第一个字符之前的字符^是空格或第一个字母时才有效。例如,当输入ma^^n<- 时,这不会改变我的角色,而^^n<- 会改变它。
这是脚本,我在创建脚本时指定我只学习了这种语言:
\n\n:*c:^^S::\nSendUnicodeChar(0x015E)\nReturn\n\n:*c:^^s::\nSendUnicodeChar(0x015F)\nReturn\n\n:*c:^^i::\nSendUnicodeChar(0x131)\nReturn\n\n:*c:^^I::\nSendUnicodeChar(0x130)\nReturn\n\n:*c:^^g::\nSendUnicodeChar(0x011F)\nReturn\n\n:*c:^^G::\nSendUnicodeChar(0x011E)\nReturn\n\n:*c:^^n::\nSendUnicodeChar(0x00F1)\nReturn\n\n:*c:^^N::\nSendUnicodeChar(0x00D1)\nReturn\n\n:*c:^^c::\nSendUnicodeChar(0x00E7)\nReturn\n\n:*c:^^C::\nSendUnicodeChar(0x00C7)\nReturn\n\n; Find the corresponding letter from the unicode\n; and send the input back\nSendUnicodeChar(charCode)\n{\n VarSetCapacity(ki, 28 * 2, 0)\n EncodeInteger(&ki + 0, 1)\n EncodeInteger(&ki + 6, charCode)\n EncodeInteger(&ki + 8, 4)\n EncodeInteger(&ki +28, 1)\n EncodeInteger(&ki +34, charCode)\n EncodeInteger(&ki +36, 4|2)\n\n DllCall("SendInput", "UInt", 2, "UInt", &ki, "Int", 28)\n}\n\nEncodeInteger(ref, val)\n{\n DllCall("ntdll\\RtlFillMemoryUlong", …Run Code Online (Sandbox Code Playgroud)