小编tro*_*man的帖子

getLayoutParams返回null?

我创建了一个扩展View的类:

public class BoardView extends View  {
Run Code Online (Sandbox Code Playgroud)

我在应用程序的main.xml文件中指定了BoardView的宽度和高度:

  <mypackage.BoardView
        android:id="@+id/board"         
        android:layout_width="270px" 
        android:layout_height="270px" /> 
Run Code Online (Sandbox Code Playgroud)

我正在尝试从BoardView的构造函数调用的函数中获取宽度和高度.这是我正在做的事情:

ViewGroup.LayoutParams p = this.getLayoutParams();
int h = p.height;
Run Code Online (Sandbox Code Playgroud)

但是getLayoutParams总是返回null.知道为什么这不起作用吗?

android

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

PHP字符串比较没有引号

根据我对PHP的了解,以下语法合法:

if ($s == Yes)
Run Code Online (Sandbox Code Playgroud)

它应该写成:

if ($s == 'Yes')
Run Code Online (Sandbox Code Playgroud)

但是,第一个例子工作正常.谁知道为什么?

php string

7
推荐指数
2
解决办法
701
查看次数

显示Android WebView的favicon

我想通过android.webkit.WebView显示我访问的网站的favicon.我尝试了两种方法来获得它:

1)WebViewClient.onPageStarted()方法有一个始终为null的favicon参数.

2)WebChromeClient.onReceivedIcon()方法永远不会被调用.

3)调用WebView.getFavicon()onPageStarted()onPageFinished(),但它总是返回null.

我无法在网上找到一个显示如何访问favicon的示例.任何提示将不胜感激.

favicon android

7
推荐指数
1
解决办法
7526
查看次数

使用XML中的PathInterpolatorCompat执行Android片段自定义动画?

我正在尝试使用<pathInterpolator>在 Android 中创建自定义片段动画。该应用程序必须支持 API 19 及更高版本。

res/anim/slide_in.xml:

<translate xmlns:android="http://schemas.android.com/apk/res/android"
           android:interpolator="@anim/myinterpolator"
           android:fromYDelta="100%p" android:toYDelta="0"
           android:duration="1000"/>
Run Code Online (Sandbox Code Playgroud)

res/anim/myinterpolator.xml:

<pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
                  android:controlX1="0.33"
                  android:controlY1="0"
                  android:controlX2="0"
                  android:controlY2="1"/>
Run Code Online (Sandbox Code Playgroud)

这在具有 API 21 的设备上效果很好,但在 API 19 设备上会崩溃,因为 PathInterpolator 是在 API 21 中添加的。

我想使用PathInterpolatorCompat来支持 API 19,但如何在 XML 中使用它?

谢谢您的帮助!

xml android android-animation

6
推荐指数
0
解决办法
1888
查看次数

在Windows应用商店或通用应用中注册应用失败错误

执行Windows应用商店或通用项目时,Visual Studio显示以下错误:

错误1错误:DEP0700:应用程序注册失败.另一位用户已经安装了此应用程序的未打包版本.当前用户无法用打包版本替换它.冲突的包是dff9bf13-e639-46ad-a6ed-61b27be58eed,由CN = owais发布.(0x80073cf9)瓷砖

windows-store-apps win-universal-app

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

ImageView setImageDrawable不适用于ShapeDrawable

我已经以ShapeDrawable编程方式创建了一个并希望将其显示在一个ImageView.如果我使用ImageView.setImageDrawable(),我无法看到ShapeDrawable.如果我使用ImageView.setBackground()它,它的工作原理.

为什么不起作用ImageView.setImageDrawable()

布局文件中的ImageView:

<ImageView
    android:id="@+id/myImageView"
    android:layout_width="100dp"
    android:layout_height="200dp" />
Run Code Online (Sandbox Code Playgroud)

活动onCreate:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    int x = 0;
    int y = 0;
    int width = 300;
    int height = 250;

    ShapeDrawable drawable = new ShapeDrawable(new OvalShape());
    drawable.getPaint().setColor(0xff74AC23);
    drawable.setBounds(x, y, x + width, y + height);

    ImageView iv = findViewById(R.id.myImageView);
    iv.setBackground(drawable);        // works
    //iv.setImageDrawable(drawable);   // doesn't work
}
Run Code Online (Sandbox Code Playgroud)

android

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

Android示例中的上下文问题"Google Map View"

我试图在Android开发者网站上实现Google Map View教程,但是当我点击叠加图片时尝试显示AlertDialog时遇到问题.问题是调用时mContext为null

AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
Run Code Online (Sandbox Code Playgroud)

在HelloItemizedOverlay的onTap方法中因为构造函数

public HelloItemizedOverlay(Drawable defaultMarker, Context context) {
    super(boundCenterBottom(defaultMarker));
    mContext = context;
}
Run Code Online (Sandbox Code Playgroud)

从来没有调用(我可以告诉)初始化mContext.当我更换

HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(drawable);
Run Code Online (Sandbox Code Playgroud)

HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(drawable, 
                this.getApplicationContext());
Run Code Online (Sandbox Code Playgroud)

在HelloGoogleMaps的onCreate方法中,为了初始化上下文,我得到一个例外

android.view.WindowManager $ BadTokenException:无法添加窗口 - 令牌null不适用于应用程序

当我尝试显示AlertDialog时:

dialog.show();
Run Code Online (Sandbox Code Playgroud)

我认为这个教程已经被成千上万的人成功实现,所以我很遗憾为什么没有其他人遇到这个问题...我是否错过了教程中的重要一步?

android google-maps

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

在Android中启动时区列表以获取选择/结果

我看到可以通过Android中的意图启动日期和时间设置,但我想要做的只是启动显示时区的列表(单击"选择时区")并获取所选值没有选择修改用户的日期和时间设置.知道怎么做吗?

android

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

是否可以重新定义JavaScript类的方法?

在JavaScript中使用构造函数创建类时,是否可以在以后重新定义类的方法?

例:

function Person(name)
{
    this.name = name;
    this.sayHello = function() {
        alert('Hello, ' + this.name);
    };
};

var p = new Person("Bob");
p.sayHello();   // Hello, Bob
Run Code Online (Sandbox Code Playgroud)

现在我想像这样重新定义sayHello:

// This doesn't work (creates a static method)
Person.sayHello() = function() {
   alert('Hola, ' + this.name);
};
Run Code Online (Sandbox Code Playgroud)

所以当我创建另一个时Person,sayHello将调用新方法:

var p2 = new Person("Sue");
p2.sayHello();   // Hola, Sue
p.sayHello();    // Hello, Bob
Run Code Online (Sandbox Code Playgroud)

编辑:

我意识到我可以发送一个像"Hello"或"Hola"这样的参数sayHello来完成不同的输出.我也意识到我可以简单地为p2分配一个新函数,如下所示:

p2.sayHello = function() { alert('Hola, ' + this.name); };
Run Code Online (Sandbox Code Playgroud)

我只是想知道我是否可以重新定义类的方法,所以新的实例Person …

javascript class

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

HTML5更改为CSS相对和绝对定位

我注意到,如果我的网页包含HTML5 doctype标题,那么使用相对定位的CSS将以非常不同的方式处理<!DOCTYPE HTML>.例如:

<html>
<body>

<img src="test.png" />
<span style="position: relative; top: -10;">TEST</span>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

将TEST一词对齐比其默认位置高10个像素,如下所示: 文字与图片顶部对齐

但是如果我添加<!DOCTYPE HTML>到文档的顶部并且不做任何其他更改:

<!DOCTYPE HTML>
<html>
<body>

<img src="test.png" />
<span style="position: relative; top: -10;">TEST</span>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

然后相对定位似乎对单词TEST没有影响: 文字不再对齐

此行为在Windows的最新版本的IE,Chrome和Firefox中是一致的.在使用带有和不带HTML5 doctype标头的绝对定位时,我注意到了其他古怪的行为.

在HTML5中如何应用相对和绝对定位是否有根本性的变化?

html css html5

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

使用 Microsoft.Data.Sqlite C# 获取最后插入的 rowid

我使用Microsoft.Data.Sqlite库创建了一个带有 sqlite 数据库的 UWP 应用程序。插入新行后,我需要知道分配给新行的自动增量值。下面的代码使用附加查询“select last_insert_rowid()”,但是有没有更好的方法来获取这个值?

public static int AddMovie(Movie movie)
{
    string dbpath = Path.Combine(ApplicationData.Current.LocalFolder.Path, DB_FILENAME);
    using (SqliteConnection db = new SqliteConnection($"Filename={dbpath}"))
    {
        db.Open();

        SqliteCommand cmd = new SqliteCommand();
        cmd.Connection = db;

        cmd.CommandText = "INSERT INTO Movie VALUES (NULL, @Title, @Rating)";
        cmd.Parameters.AddWithValue("@Title", movie.Title);
        cmd.Parameters.AddWithValue("@Rating", movie.Rating);

        cmd.ExecuteReader();

        // Is there a better way to get this value?
        cmd = new SqliteCommand("SELECT last_insert_rowid()", db);
        SqliteDataReader query = cmd.ExecuteReader();

        var newId = 0;
        if (query.Read())
        {
            newId = query.GetInt32(0);
        } …
Run Code Online (Sandbox Code Playgroud)

c# sqlite

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

使用实体框架的 ASP.NET Web API 中的子集合为 null

我正在尝试创建一个 ASP.NET Web 服务,该服务通过实体框架公开学生和课程的列表。每门课程由多名学生组成:

public class Student
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public class Course
{
    public int Id { get; set; }
    public string Title { get; set; }
    public ICollection<Student> Students { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我像这样播种模型:

protected override void Seed(StudentsContext context)
{
    var students = new List<Student> 
    {
        new Student { Id = 1, Name = "stu1" },
        new Student { Id = 2, Name = …
Run Code Online (Sandbox Code Playgroud)

c# asp.net entity-framework asp.net-web-api2

0
推荐指数
1
解决办法
2925
查看次数