我一直在使用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) 在我的 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) 以下代码可能存在未定义的行为:
uint64_t arr[1]; // Uninitialized
if(arr[0] == 0) {
Run Code Online (Sandbox Code Playgroud)
C标准指定具有自动存储持续时间的未初始化变量具有不确定的值,该值是未指定的或陷阱表示.它还指定uintN_t类型没有填充位,并且定义了值的大小和范围; 所以陷阱表示uint64_t
是不可能的.
所以我得出结论,未初始化的值本身并不是未定义的行为.读它怎么样?
6.3.2.1左值,数组和函数指示符
- ...
除非它是运算
sizeof
符的操作数,_Alignof运算符,一元&运算符,++运算符,--
运算符或者左运算符.运算符或赋值运算符,没有数组类型的左值被转换为存储在指定对象中的值(并且不再是左值); 这称为左值转换....... 如果左值指定了一个自动存储持续时间的对象,该对象可以使用寄存器存储类声明(从未使用过其地址),并且该对象未初始化(未使用初始化程序声明并且未对其进行任何赋值)在使用之前),行为是未定义的.
- 除非它是sizeof运算符,_Alignof运算符或一元&运算符的操作数,或者是用于初始化数组的字符串文字,否则将具有类型''数组类型''的表达式转换为表达式输入''指向类型'的指针,指向数组对象的初始元素,而不是左值.如果数组对象具有寄存器存储类,则行为未定义.
问题:下标数组是否计为获取对象的地址?
下面的文字似乎暗示下标数组需要转换为指针,如果没有获取地址似乎无法做到:
6.5.2.1数组下标
约束
- 其中一个表达式应具有类型''指向完整对象类型'的指针,另一个表达式应具有整数类型,结果具有类型''type''.
语义
- 后缀表达式后跟方括号[]中的表达式是数组对象元素的下标名称.下标运算符[]的定义是E1 [E2]与(*((E1)+(E2)))相同.由于适用于binary +运算符的转换规则,如果E1是数组对象(等效地,指向数组对象的初始元素的指针)并且E2是整数,则E1 [E2]指定E2-元素E1(从零开始计数).
这使§6.3.2.1第3段看起来很奇怪.如果订阅需要转换为指针,那么数组怎么可以注册存储类呢?
我需要使用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)
即使我选择另一个对象,控制台的输出也是未定义的。
我目前正在开发一个应用程序,允许客户通过自定义表单注册事件。该自定义表单将由事件管理员构建,用于客户的特定输入。
客户将转到表格,完成输入并选择一个地点,然后将显示可用的时间段。我坚持使用这两种数据库设计,想知道哪一种是更好的方法。
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) 我已经在Google Play上发布了一个应用。据我说,我每次上载新的APK时,都需要更改gradle文件中的版本代码,然后从那里开始,Google Play会通知用户有关可用更新的信息。我与许多现实世界的用户保持联系,他们说尽管我已经发布了对原始应用程序的一些更新,但他们从未收到有关应用程序更新的通知。我知道有些设备级别的播放存储设置,例如“仅在wi-fi上更新应用程序”等,并且我已经验证了场景的所有此类组合。我仍然相信不会通知所有用户可用的新版本。所以我的问题是
1)我一开始就缺少什么吗?
2)我有什么选择来确保通知用户有关可用更新的信息?
android push-notification google-play build.gradle android-update-app
android ×2
java ×2
adapter ×1
admob ×1
arrays ×1
build.gradle ×1
c ×1
database ×1
ejs ×1
enums ×1
express ×1
google-play ×1
hibernate ×1
html ×1
jpa ×1
mysql ×1
native-ads ×1
node.js ×1
php ×1
postgresql ×1