标签: programmatically-created

如何以编程方式将UIButton添加到UIToolBar?

我使用Interface Builder添加了工具栏,但我需要在运行时/有条件地添加按钮.我没有收到任何错误,但我的动态按钮没有出现在工具栏上.我已经验证arrayOfModulesScreens加载了我需要的数据.至少那可行(:)).我是否需要将按钮添加到UIView中,然后将该视图添加到工具栏中?只是想出来.也许有一个更好的方法开始?提前感谢任何导致决心的线索.

CustomFormController.h

@interface CustomFormController : UIViewController { 
    UIToolbar *screensBar;  
}
Run Code Online (Sandbox Code Playgroud)

CustomFormController.m

EPData *epData = [[EPData alloc] init];
NSArray *screens = [epData loadPlistIntoArray:@"Screens"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"process_module_id == %@", process_modulesID];
NSArray *arrayOfModulesScreens = [screens filteredArrayUsingPredicate:predicate];

for(int i=0; i < [arrayOfModulesScreens count]; i++) {
    NSDictionary *dictRow = [arrayOfModulesScreens objectAtIndex:i];
    UIButton *button = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];
    [button setTitle:[dictRow objectForKey:@"screen_title"] forState:UIControlStateNormal];
    [button addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];
    [screensBar addSubview:button];  
}
Run Code Online (Sandbox Code Playgroud)

iphone uibutton uitoolbar ios programmatically-created

5
推荐指数
1
解决办法
1万
查看次数

使用FormStateInterface :: getTriggeringElement()发出"two dimentionnal'添加另一个项'"的问题

我正在学习drupal 8.我想创建一个包含'two dimensionnal''添加另一个项目'表单的页面.我的代码几乎运行良好,但是当我向房子添加房间时我有一个奇怪的行为(我的调试日志中有一个来自FormStateInterface :: getTriggeringElement()的奇怪值,请参见底部的代码和日志)

第一:我有两个结构,房子和房间.用户可以创建一些房屋,每个房子,他可以创建一些房间:

在此输入图像描述

当我添加一些房子,表格工作正常:

在此输入图像描述

当我将一些房间添加到最后一个房子时,表格也可以正常工作:

在此输入图像描述

但是,当我向任何"没有最后"的房子添加一些房间时,表格不能正常工作(在屏幕截图中,我点击了一次"阻止房屋"中的"添加房间",标签为"房子1"成了"房子2"(?!),点击添加5个房间(?!):

在此输入图像描述

这里是我的代码和一个奇怪的调试日志,我不解释为什么我得到这个值(来自room_addMoreSubmit回调中的getTriggeringElement(),这是我认为的问题)

<?php

namespace Drupal\projet\Form;
use Drupal\Core\Form\FormBase;
use Drupal\Core\Form\FormStateInterface;

class HouseForm extends FormBase {

  public function getFormId(){
    return 'custom_rooms_form';
  }

  function buildForm(array $form, FormStateInterface $form_state) {



    $house_count = $form_state->get('house_count');

    if (is_null($house_count)) {
      $house_count = 1;
      $form_state->set('house_count', $house_count);
    }

    $form['house'] = array(
        //'#tree' => TRUE,
        '#prefix' => '<div id="house-replace">',
        '#suffix' => '</div>'
    );

    for ($house_delta = 0; $house_delta < $house_count; $house_delta++) {
      if (!isset($form['house'][$house_delta])) {

        $room_count[$house_delta] = $form_state->get('room_count_'.$house_delta);

        if (is_null($room_count[$house_delta])) {
          $room_count[$house_delta] = …
Run Code Online (Sandbox Code Playgroud)

drupal-ajax drupal-forms drupal-8 programmatically-created

5
推荐指数
1
解决办法
187
查看次数

TextView以编程方式安装Android

我在以编程方式创建textView时遇到一些问题.我真的不知道如何解决它.

在此输入图像描述

问题是:

- 保证金,我不希望我的TextView相互粘连.

- 文本不像标题中那样位于drawable的中心

- 我想让Nickname用户的消息向右对齐,Nick的消息对齐到左边.

为此我有这两个功能:

private void appendSenderText(String message) {

        TextView msg = new TextView(ChatActivity.this);
        msg.setBackgroundResource(R.drawable.rectangle);
        msg.setText(message);
        msg.setPadding(10, 10, 10, 10);
        msg.setTextColor(getResources().getColor(R.color.white));
        FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT, Gravity.LEFT);
        params.setMargins(10, 10, 10, 10);
        msg.setLayoutParams(params);
        LinearLayout chat = (LinearLayout) findViewById(R.id.chatLayout);
        chat.addView(msg);  
    }

    private void appendReceiverText(String message) {

        TextView msg = new TextView(ChatActivity.this);
        msg.setBackgroundResource(R.drawable.rectangle);
        msg.setText(message);
        msg.setPadding(10, 10, 10, 10);
        msg.setTextColor(getResources().getColor(R.color.white));
        FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT, Gravity.RIGHT);
        params.setMargins(10, 10, 10, 10);
        msg.setLayoutParams(params);
        LinearLayout chat = (LinearLayout) findViewById(R.id.chatLayout);
        chat.addView(msg);  
    }
Run Code Online (Sandbox Code Playgroud)

它似乎无法正常工作.我还检查了函数是否被正确调用.我注意到在标题的XML文件中,我指定了layout_gravity而不是gravity. …

android textview programmatically-created

4
推荐指数
1
解决办法
2万
查看次数

以编程方式将点击手势添加到 UILabel

我试图在 swift 4 的函数中为动态创建的 UILabel 添加点击手势,但它没有触发 UITapGestureRecognizer 函数。当我从 viewDidLoad 函数添加点击手势时它正在工作,但我必须从其他函数添加点击手势。

这是代码

    override func viewDidLoad() {

    super.viewDidLoad()

    createLabel()
    }

   func createLabel() {

   let label = UILabel()
   label.text = "abc"
   label.numberOfLines = 0 
   label.frame.size.width = self.otherlinksStack.bounds.width
   label.font = label.font.withSize(17) // my UIFont extension

   label.sizeToFit()
   label.tag = 1
   self.otherlinksStack.addSubview(label)
   let labelTapGesture = UITapGestureRecognizer(target:self,action:#selector(self.doSomethingOnTap))

 label.isUserInteractionEnabled = true

 label.addGestureRecognizer(labelTapGesture)

 }

 @objc func doSomethingOnTap() {

    print("tapped")
}
Run Code Online (Sandbox Code Playgroud)

uilabel ios uitapgesturerecognizer programmatically-created swift4

4
推荐指数
1
解决办法
1万
查看次数

以编程方式设置scrollview的layoutparams时获取异常

我以编程方式设置scroolview的layoutparams时遇到异常.我已经尝试过但在执行此操作时遇到异常.这是代码:

sv = (ScrollView)findViewById(R.id.scrollView);
        sv.setBackgroundColor(Color.TRANSPARENT);

            ScrollView.LayoutParams layoutParams = new ScrollView.LayoutParams(
                    ScrollView.LayoutParams.MATCH_PARENT,
                    ScrollView.LayoutParams.MATCH_PARENT);
            layoutParams.bottomMargin = 100;
            layoutParams.setMargins(0, 0, 0, 100);
            sv.setLayoutParams(layoutParams);
Run Code Online (Sandbox Code Playgroud)

这是错误日志:

09-23 12:13:20.666: E/AndroidRuntime(3284): Uncaught handler: thread main exiting due to uncaught exception
09-23 12:13:20.696: E/AndroidRuntime(3284): java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams
09-23 12:13:20.696: E/AndroidRuntime(3284):     at android.widget.RelativeLayout$DependencyGraph.findRoots(RelativeLayout.java:1291)
09-23 12:13:20.696: E/AndroidRuntime(3284):     at android.widget.RelativeLayout$DependencyGraph.getSortedViews(RelativeLayout.java:1238)
09-23 12:13:20.696: E/AndroidRuntime(3284):     at android.widget.RelativeLayout.sortChildren(RelativeLayout.java:279)
09-23 12:13:20.696: E/AndroidRuntime(3284):     at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:299)
09-23 12:13:20.696: E/AndroidRuntime(3284):     at android.view.View.measure(View.java:7964)
09-23 12:13:20.696: E/AndroidRuntime(3284):     at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:569)
09-23 12:13:20.696: E/AndroidRuntime(3284):     at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:361)
09-23 12:13:20.696: E/AndroidRuntime(3284):     at android.view.View.measure(View.java:7964)
09-23 12:13:20.696: …
Run Code Online (Sandbox Code Playgroud)

layout android scrollview programmatically-created

3
推荐指数
1
解决办法
5259
查看次数

以编程方式在ScrollView中添加视图

这是xml代码:

<LinearLayout 
    android:id="@+id/mainLayout"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity"
    android:orientation="vertical"
    android:background="@color/black" >

    <ScrollView
        android:id="@+id/mainScrollView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/teal"
        android:layout_weight=".50">

     <LinearLayout
            android:id="@+id/linearLayout1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >

     </LinearLayout>


    </ScrollView>

    <Button 
         android:id="@+id/addButton"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:text="+"
         android:gravity="center"
         android:layout_weight=".20"
     />

     <TextView
         android:id="@+id/totalHoursLabel"
         android:text="Ore Totali"
         android:background="@color/gray"
         android:textColor="@color/red"
         android:gravity="center"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_weight=".10"
     />

     <TextView
         android:id="@+id/totalHoursView"
         android:text="00:00"
         android:background="@color/white"
         android:textColor="@color/black"
         android:gravity="center"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_weight=".20"
     />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我的问题是当我尝试将视图添加到ScrollView或他的内部LinearLayout时,我的程序崩溃了.

这是我的java代码:

super.onCreate(savedInstanceState);

LinearLayout ll = (LinearLayout) findViewById(R.id.linearLayout1);

TextView tv = new TextView(this);
tv.setText("testView");
tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
ll.addView(tv);

setContentView(R.layout.activity_main);
Run Code Online (Sandbox Code Playgroud)

如果我创建一个新的android项目这个代码(只有一个relativeLayout和xml文件中的其他所有空)工作正常.

我认为findViewById方法或我的xml文件存在一些问题. …

layout android view scrollview programmatically-created

3
推荐指数
1
解决办法
2万
查看次数

用户创建com.liferay.portal.GroupFriendlyURLException上的Liferay异常

我从java代码创建了一个用户whit XXX用户名.

因为它是用错误的权限完成的,我无法从Web界面看到它,所以我直接从数据库中删除它.

之后,如果我尝试创建相同的用户,我得到以下例外:

 com.liferay.portal.GroupFriendlyURLException
Run Code Online (Sandbox Code Playgroud)

怎么可能出错?

java liferay programmatically-created

3
推荐指数
1
解决办法
1194
查看次数

TestNG:如何以编程方式运行自定义TestNG.XML文件

我浏览了几个不同的线程和网站(以及TestNG API),寻找如何运行和创建自定义测试.我没有找到(或不了解)如何以编程方式运行自定义testng.xml(测试套件).

我创建了一个如下所示的testng.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<suite name="The Login Suite'" verbose="1" >
  <test name="Some login check" >
    <classes>
      <class name="tests.first_login"/>
    </classes>
 </test>
   <test name="Another login check" >
    <classes>
      <class name="tests.second_login"/>
    </classes>
 </test>
</suite>
Run Code Online (Sandbox Code Playgroud)

我知道我可以从Eclipse中执行我的套件 - 但我不希望这样.为什么?因为我正在通过调度程序运行测试.所以我需要一个可配置的testng.xml文件.

我试图通过如下代码生成虚拟XML测试套件:

            TestListenerAdapter tla = new TestListenerAdapter();
                TestNG tng = new TestNG();
                tng.addListener(tla);

                XmlSuite loginSuite = new XmlSuite();
                loginSuite.setName("The Login Suite");

                    XmlTest first_test = new XmlTest();
                    first_test.setName("Some login check");
                    first_test.setSuite(loginSuite);

                List<XmlClass> fistlogin_classes = new ArrayList<XmlClass>();
                fistlogin_classes.add(new XmlClass("tests.fist_login"));

                    XmlTest second_test = new XmlTest();
                    second_test.setName("Another login check"); …
Run Code Online (Sandbox Code Playgroud)

java eclipse testng custom-configuration programmatically-created

3
推荐指数
2
解决办法
1万
查看次数

如何基于data.table中的分类变量以编程方式创建二进制列?

我有一个很大的(1200万行)data.table,看起来像这样:

library(data.table)
set.seed(123)
dt <- data.table(id=rep(1:3, each=5),y=sample(letters[1:5],15,replace = T))
> dt
    id y
 1:  1 b
 2:  1 d
 3:  1 c
 4:  1 e
 5:  1 e
 6:  2 a
 7:  2 c
 8:  2 e
 9:  2 c
10:  2 c
11:  3 e
12:  3 c
13:  3 d
14:  3 c
15:  3 a
Run Code Online (Sandbox Code Playgroud)

我想创建一个新的data.table包含我的变量id(这将是这个新的独特的键data.table)和其他5个二元变量每一个对应于每个类别的y内搭的值1,如果ID对于该值y,0否则.
输出data.table应如下所示:

   id a …
Run Code Online (Sandbox Code Playgroud)

r binary-data programmatically-created data.table

3
推荐指数
1
解决办法
917
查看次数

我的带有自动布局约束的 Swift 4 UIScrollView 不滚动

在将视图添加到我的应用程序之前,我已经创建了一个小型演示游乐场来使其工作。

我有一个滚动视图,它将包含许多水平滚动的按钮。我知道这些按钮需要进入滚动视图中的容器视图,并且也创建了它。我最初使用自动布局约束来创建所有这些,但现在尝试使用常量来确保内容视图大于滚动视图。但是,按钮仍然不会滚动......我错过了什么吗?滚动视图不适用于自动布局吗?

我也在我的 iPad 上以编程方式执行所有这些操作,因此不幸的是,使用界面构建器的解决方案不是一种选择...

这是完整的代码:

import UIKit
import PlaygroundSupport

class FilterViewController: UIViewController {
    var filterView: UIView!
    var scrollView: UIScrollView!
    var containerView: UIView!

    override func loadView() {
        filterView = UIView()
        view = filterView
        view.backgroundColor = #colorLiteral(red: 0.909803926944733, green: 0.47843137383461, blue: 0.643137276172638, alpha: 1.0)

        scrollView = UIScrollView()
        scrollView.backgroundColor = #colorLiteral(red: 0.474509805440903, green: 0.839215695858002, blue: 0.976470589637756, alpha: 1.0)
        view.addSubview(scrollView)
        scrollView.translatesAutoresizingMaskIntoConstraints = false
        scrollView.topAnchor.constraint(equalTo:view.topAnchor, constant:40).isActive = true
        scrollView.leadingAnchor.constraint(equalTo:view.leadingAnchor).isActive = true
        scrollView.widthAnchor.constraint(equalTo:view.widthAnchor).isActive = true
        scrollView.heightAnchor.constraint(equalToConstant: 200).isActive = true
        scrollView.isScrollEnabled = true

        containerView = UIView() …
Run Code Online (Sandbox Code Playgroud)

uiscrollview ios programmatically-created swift swift-playground

3
推荐指数
1
解决办法
8574
查看次数