小编Pan*_*lan的帖子

MyAdapter 无法在 android 中投射到 com.google.android.gms.ads.NativeExpressAdView

我一直在使用RecyclerView和 Google Volley 来解析 JSON。然后我添加了谷歌原生广告!

我在此链接上关注教程

所以我确实像谷歌开发者指南一样改变了 RecyclerViewAdapter !

它说列表必须是对象列表(列表)所以我在适配器中更改了这个和其他一些东西!

然后 Android Studio 没有显示错误,我可以启动应用程序。但是当我要使用提到的 RecyclerView 打开 Fragment 时,它崩溃了。

它说:

java.lang.ClassCastException:com.graciaapps.nameoncards.instance.greetoptions.SubOptionOneInstance 无法转换为 com.google.android.gms.ads.NativeExpressAdView

这是 onBindViewHolder 的以下行

NativeExpressAdView adView =(NativeExpressAdView)greetingInstanceList.get(position);
Run Code Online (Sandbox Code Playgroud)

第一个片段.java

NativeExpressAdView adView =(NativeExpressAdView)greetingInstanceList.get(position);
Run Code Online (Sandbox Code Playgroud)

子选项一个适配器.java

package com.cards.adapter.greetoptions;

public class SubOptionOneAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    private List<Object> greetingInstanceList;
    Activity activity;
    private String TAG = getClass().getName();
    private static final int MENU_ITEM_VIEW_TYPE = 0;
    private static final int AD_VIEW = 1;

    public SubOptionOneAdapter() {

    }

    public SubOptionOneAdapter(Activity activity, List<Object> greetingInstanceList) {
        this.greetingInstanceList …
Run Code Online (Sandbox Code Playgroud)

java android adapter admob native-ads

5
推荐指数
0
解决办法
1776
查看次数

如何使用 Hibernate/JPA 将 JAVA 枚举映射到 Postgresql 枚举?

在我的 Hibernate 应用程序中,我想将 Java 枚举映射到 Postgresql 枚举,反之亦然。

我的应用程序使用 apache-thrift、hibernate/JPA(用于 ORM 模型)、postgresql DB。

Postgresql DB 使用命令定义了枚举

CREATE TYPE status_enum AS ENUM ('UNDER-CONSTRUCTION', 'CLOSED', 'OPEN')
Run Code Online (Sandbox Code Playgroud)

数据库有一些数据,最初很少有元组具有“正在建设”状态。

这是我的解决方案:

枚举映射的自定义类型:

public class PsqlEnum extends EnumType {

    @Override
    public void nullSafeSet(final PreparedStatement st, final Object value, final int index,
            final SharedSessionContractImplementor session) throws SQLException {
        if(value == null) {
            st.setNull( index, Types.OTHER );
        }
        else {
            st.setObject(
                    index,
                    value.toString(),
                    Types.OTHER
            );
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

ORM(休眠)模型的实体:

@Entity
@Table(name = "place")
@TypeDef(
        name = "pgsql_enum",
        typeClass = …
Run Code Online (Sandbox Code Playgroud)

java postgresql enums hibernate jpa

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

数组订阅是否算作获取对象的地址?

这个问题的灵感来自这个问题答案.

以下代码可能存在未定义的行为:

uint64_t arr[1]; // Uninitialized
if(arr[0] == 0) {
Run Code Online (Sandbox Code Playgroud)

C标准指定具有自动存储持续时间的未初始化变量具有不确定的值,该值是未指定的陷阱表示.它还指定uintN_t类型没有填充位,并且定义了值的大小和范围; 所以陷阱表示uint64_t是不可能的.

所以我得出结论,未初始化的值本身并不是未定义的行为.读它怎么样?

6.3.2.1左值,数组和函数指示符

  1. ...
  2. 除非它是运算sizeof符的操作数,_Alignof运算符,一元&运算符,++运算符,--运算符或者左运算符.运算符或赋值运算符,没有数组类型的左值被转换为存储在指定对象中的值(并且不再是左值); 这称为左值转换....

    ... 如果左值指定了一个自动存储持续时间的对象,该对象可以使用寄存器存储类声明(从未使用过其地址),并且该对象未初始化(未使用初始化程序声明并且未对其进行任何赋值)在使用之前),行为是未定义的.

  3. 除非它是sizeof运算符,_Alignof运算符或一元&运算符的操作数,或者是用于初始化数组的字符串文字,否则将具有类型''数组类型''的表达式转换为表达式输入''指向类型'的指针,指向数组对象的初始元素,而不是左值.如果数组对象具有寄存器存储类,则行为未定义.

问题:下标数组是否计为获取对象的地址?

下面的文字似乎暗示下标数组需要转换为指针,如果没有获取地址似乎无法做到:

6.5.2.1数组下标

约束

  1. 其中一个表达式应具有类型''指向完整对象类型'的指针,另一个表达式应具有整数类型,结果具有类型''type''.

语义

  1. 后缀表达式后跟方括号[]中的表达式是数组对象元素的下标名称.下标运算符[]的定义是E1 [E2]与(*((E1)+(E2)))相同.由于适用于binary +运算符的转换规则,如果E1是数组对象(等效地,指向数组对象的初始元素的指针)并且E2是整数,则E1 [E2]指定E2-元素E1(从零开始计数).

这使§6.3.2.1第3段看起来很奇怪.如果订阅需要转换为指针,那么数组怎么可以注册存储类呢?

c arrays language-lawyer

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

使用express获取node.js中选定的选项值

我需要使用express获取选定的对象以在app.js中对其进行控制台

示例.html

 <form id="tableForm" action="getJson">
        <select class="example" name="example">
              <option name="" value="0" selected>Select table</option>
              <option name="table1" value="1">Table 1</option>
              <option name="table2" value="2">Table 2</option>
              <option name="table3" value="3">Table 3</option>
        </select>
    </form>
Run Code Online (Sandbox Code Playgroud)

应用程序.js

var express = require('express'),
app = express();

app.use(express.bodyParser());

 app.get('/', function(req, res){
  res.sendfile('views/index.html');
});

app.get('/getJson', function (req, res) {
   console.log(req.body.example);
});

app.listen(3000, function(){
    console.log('Server running at port 3000: http://127.0.0.1:3000')
});
Run Code Online (Sandbox Code Playgroud)

即使我选择另一个对象,控制台的输出也是未定义的。

html ejs node.js express

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

数据库设计。具有 3 个外键或两个数据透视表的数据透视表?

我目前正在开发一个应用程序,允许客户通过自定义表单注册事件。该自定义表单将由事件管理员构建,用于客户的特定输入。

客户将转到表格,完成输入并选择一个地点,然后将显示可用的时间段。我坚持使用这两种数据库设计,想知道哪一种是更好的方法。

带有 3 个外键的数据透视表

Table 'Customers' - 
| id | name |

Table 'Events' -
| id | name | form_fields (json)

Table 'Venues' -
| id |  address | event_id |

Table 'Timeslots' -
| id | datetime | slots | venue_id |

Pivot Table 'Tickets' -
|id | customer_id | timeslot_id | event_id | form_data (json)
Run Code Online (Sandbox Code Playgroud)

两个数据透视表

Table 'Customers' - 
| id | name |

Table 'Events' -
| id | name | form_fields (json)

Table 'Venues' …
Run Code Online (Sandbox Code Playgroud)

php mysql database database-design design-patterns

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

没有发送有关应用更新的Google Play推送通知。我想念什么吗?

我已经在Google Play上发布了一个应用。据我说,我每次上载新的APK时,都需要更改gradle文件中的版本代码,然后从那里开始,Google Play会通知用户有关可用更新的信息。我与许多现实世界的用户保持联系,他们说尽管我已经发布了对原始应用程序的一些更新,但他们从未收到有关应用程序更新的通知。我知道有些设备级别的播放存储设置,例如“仅在wi-fi上更新应用程序”等,并且我已经验证了场景的所有此类组合。我仍然相信不会通知所有用户可用的新版本。所以我的问题是

1)我一开始就缺少什么吗?

2)我有什么选择来确保通知用户有关可用更新的信息?

android push-notification google-play build.gradle android-update-app

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