小编San*_*til的帖子

Android,ListView IllegalStateException:"适配器的内容已更改,但ListView未收到通知"

我想做什么:运行后台线程计算ListView内容并部分更新ListView,同时计算结果.

我知道我必须避免:我不能从后台线程中弄乱ListAdapter内容,所以我继承了AsyncTask并从onProgressUpdate发布结果(向适配器添加条目).我的适配器使用结果对象的ArrayList,这些arraylists上的所有操作都是同步的.

其他人的研究:有非常有价值的数据在这里.对于500名用户来说,我几乎每天都会遇到崩溃,当我list.setVisibility(GONE)/trackList.setVisibility(VISIBLE)在onProgressUpdate中添加了阻塞时,崩溃率下降了10倍但没有消失.(有人建议回答)

我有时得到的:请注意,它很少发生(每周一次为3.5k用户之一).但我想完全摆脱这个错误.这是部分堆栈跟踪:

`java.lang.IllegalStateException:` The content of the adapter has changed but ListView  did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. [in ListView(2131296334, class android.widget.ListView) with Adapter(class com.transportoid.Tracks.TrackListAdapter)]
at android.widget.ListView.layoutChildren(ListView.java:1432)
at android.widget.AbsListView.onTouchEvent(AbsListView.java:2062)
at android.widget.ListView.onTouchEvent(ListView.java:3234)
at android.view.View.dispatchTouchEvent(View.java:3709)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:852)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
[...]
Run Code Online (Sandbox Code Playgroud)

救命?不再需要了,见下文

最终答案:事实证明,我notifyDataSetChanged每次调用5次以避免闪烁和突然更改列表.它不能这样做,总是在基本列表更改时通知适配器.这个错误现在已经消失了.

android listview exception adapter

187
推荐指数
6
解决办法
12万
查看次数

如何从Android中删除sqlite中表的所有记录?

我的应用程序有两个按钮,第一个按钮用于删除用户输入的记录,第二个按钮用于删除所有记录.但是,当我想删除数据时,它会显示消息
"您的应用程序已被强制停止".

请检查我的代码并给我一些建议.

public void deleteAll()
{
    //SQLiteDatabase db = this.getWritableDatabase();
   // db.delete(TABLE_NAME,null,null);
    //db.execSQL("delete * from"+ TABLE_NAME);
    db.execSQL("TRUNCATE table" + TABLE_NAME);
    db.close();
}
Run Code Online (Sandbox Code Playgroud)

public void delete(String id)
{
    String[] args={id};
    getWritableDatabase().delete("texts", "_ID=?", args);
}
Run Code Online (Sandbox Code Playgroud)

但它显示以下Log cat错误.

03-07 15:57:07.143: ERROR/AndroidRuntime(287): Uncaught handler: thread main exiting due to uncaught exception
03-07 15:57:07.153: ERROR/AndroidRuntime(287): java.lang.NullPointerException
03-07 15:57:07.153: ERROR/AndroidRuntime(287):     at com.example.MySQLiteHelper.delete(MySQLiteHelper.java:163)
03-07 15:57:07.153: ERROR/AndroidRuntime(287):     at com.example.Settings$4.onClick(Settings.java:94)
-07 15:57:07.153: ERROR/AndroidRuntime(287):     at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:158)
03-07 15:57:07.153: ERROR/AndroidRuntime(287):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-07 15:57:07.153: ERROR/AndroidRuntime(287):     at android.os.Looper.loop(Looper.java:123)
03-07 15:57:07.153: …
Run Code Online (Sandbox Code Playgroud)

sqlite android

161
推荐指数
9
解决办法
29万
查看次数

sql delete语句,其中日期大于30天

我希望找到一个SQL语句,在执行时删除超过30天的字段.

我的表"events"有一个字段"date",其中包含在数据库中插入的日期和时间.

我现在不在家,所以我无法测试.这个好吗 ?

SELECT * from Results WHERE [Date] >= DATEADD(d, -30, getdate())
Run Code Online (Sandbox Code Playgroud)

sql-server date-arithmetic

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

Amazon Product Advertising API:如何获取ItemLookup/Search的JSON响应

我正试图从其ASIN获取亚马逊产品的细节.产品API允许使用Itemlookup ASIN,但返回值为XML.

我想从客户端调用Itemlookup,所以想做一个JSONP我找不到的电话.

我在网上发现了一些文章,JSON使用XSLT样式表将XML转换为格式:

(a)https://bitbucket.org/basti/python-amazon-product-api/src/tip/examples/json-results.py

我尝试使用这个python-amazon-product-api和这个例子,但我无法得到JSON回报.

(b)http://www.kokogiak.com/gedankengang/2006/05/consuming-amazons-web-api-directly.html

我试图发送的请求是:

http://xml-us.amznxslt.com/onca/xml?AWSAccessKeyId=[ACCESS KEY]&AssociateTag=[ASSOCIATE TAG]&ContentType=text%2Fjavascript&IdType=ASIN&ItemId=B008IEGS9W&Operation=ItemLookup&ResponseGroup=Images%2CItemAttributes&Service=AWSECommerceService&Style=http%3A%2F%2Fforums.delphiforums.com%2Fdelphidocsz%2Famazon%2Fjson.xsl&Timestamp=2012-09-04T06%3A40%3A11Z&Signature=AGOqXvVSeMp3YyVkT4mGNXVx0cFGG%2Bh%2FdAebevbbF9o%3D
Run Code Online (Sandbox Code Playgroud)

请帮助获取JSON格式Amazon product API.欢迎任何建议.


OP可以运行此样式表(未使用输入文档)来确定其XSLT版本.

<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:msxsl="urn:schemas-microsoft-com:xslt"
  exclude-result-prefixes="xsl msxsl">
<xsl:output method="html" indent="yes"/>

<xsl:template match="/">
  <html>
    <head><title>About your XSLT Processor</title></head> 
   <body>
     <ul>
       <li>xsl:version=<xsl:value-of select="system-property('xsl:version')" /></li>
       <li>xsl:vendor=<xsl:value-of select="system-property('xsl:vendor')" /></li>
       <li>xsl:vendor-url=<xsl:value-of select="system-property('xsl:vendor-url')" /></li>
       <li>xsl:product-name=<xsl:value-of select="system-property('xsl:product-name')" /></li>
       <li>xsl:product-version=<xsl:value-of select="system-property('xsl:product-version')" /></li>
       <li>xsl:is-schema-aware=<xsl:value-of select="system-property('xsl:is-schema-aware')" /></li>
       <li>xsl:supports-serialization=<xsl:value-of select="system-property('xsl:supports-serialization')" /></li>
       <li>xsl:supports-backwards-compatibility=<xsl:value-of select="system-property('xsl:supports-backwards-compatibility')" /></li>
       <li>msxsl:version=<xsl:value-of select="system-property('msxsl:version')" /></li>
     </ul>  
   </body>  
 </html>  
</xsl:template>

</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

xml xslt amazon jsonp cors

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

使用Android和自签名服务器证书的HTTPS GET(SSL)

我已经查看了有关如何通过HTTPSAndroid从使用自签名证书的服务器检索内容的各种帖子.然而,他们似乎都没有工作 - 他们都没有删除

javax.net.ssl.SSLException:不受信任的服务器证书消息.

不能选择将服务器修改为具有可信证书,也不能使服务器证书与服务器的IP地址匹配.

请注意,服务器没有DNS名称,它只有一个IP地址.GET请求看起来像这样:

 https://username:password@anyIPAddress/blabla/index.php?param=1&param2=3
Run Code Online (Sandbox Code Playgroud)

我完全清楚这种解决方案很容易发生中间人攻击等.

因此,解决方案必须忽略对证书缺乏信任,并忽略主机名不匹配.

有没有人知道使用Java for Android的代码?

有很多尝试在stackoverflow.com上解释这个,以及大量的代码片段,但它们似乎不起作用,并且没有人提供一个解决这个问题的代码块,据我所见.知道某人是否真的解决了这个问题,或者Android是否只是阻止了不受信任的证书,这将会很有趣.

java ssl android

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

使用给定的p12证书连接到https站点

服务器端给了我一个.p12证书文件,我点击并安装在我的机器上然后我可以HTTPS通过浏览器访问该站点.现在他们希望我用给出的证书抓取他们的网站.我卡在它的第一个阶段,试图让inputStreamhttpsURLConnection.该网站没有登录.它只会检查您是否拥有证书.

到目前为止我所做的是使用Firefox以.crt文件格式导出证书.然后我使用keytool命令将它(.crt文件,而不是.p12)导入java密钥库.然后在代码中:

KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
File ksFile = new File(keystorePath);
in = new FileInputStream(ksFile);
ks.load(in, "changeit".toCharArray());
X509Certificate cert = (X509Certificate) ks.getCertificate(certificateAlias);

SSLContext sc = SSLContext.getInstance("TLS");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

HttpsURLConnection con = (HttpsURLConnection) (new URL(urlString)).openConnection();
con.connect();
con.getInputStream();
con.disconnect();
Run Code Online (Sandbox Code Playgroud)

getInputStream()将给我403错误禁止访问.我搜索了其他相关主题,实际上比阅读之前更加困惑.非常感谢答案.

额外细节:

  • 我只是实例化了证书,并且没有让程序知道任何类型的密钥(私有,公共等).所以我认为我必须将这些密钥提供给服务器,让它知道我实际上持有证书.我完全不知道如何做到这一点,无论是逻辑还是语法.
  • 我已经尝试过keytool命令将.p12证书文件导入密钥库但不知何故,keytool无法识别-pkcs12选项.关于如何直接使用这个.p12证书的任何想法都会很棒.
  • trustAllCert是TrustMangers的一个元素数组,它不验证任何东西(全部信任).我不知道我是否应该继续使用它.事实上,现在我实际上只有一个证书可以信任.在这种情况下编写trustManger的正确方法是什么?
  • 我无法控制服务器端.我所获得的只是访问其网站的URL,它是在HTTPS协议下的,以及.p12证书.该网站没有登录.如果安装了证书,我可以进去.

java https certificate

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

如何使用Mailto URL与主题发送邮件?

我需要在Mailto link我的网站上创建一个包含产品名称或产品页面网址的网站subject section.我该怎么做?
Exp:当您收到eBay有关您正在销售或购买的产品的电子邮件时,您会通过查看主题部分中的产品名称自动了解该电子邮件的产品.
我怎样才能做到这一点?

html mailto uri

23
推荐指数
3
解决办法
8万
查看次数

对sun.security.pkcs11.SunPKCS11的访问限制

我正在尝试设置PKCS11提供程序来访问智能卡.我在我的系统上安装了一个PKCS11库,并按照Java PKCS#11参考指南中的说明进行操作.在引用中,它们只是创建一个实例,sun.security.pkcs11.SunPKCS11并将配置文件的名称传递给构造函数.当我尝试编译以下代码时

Provider p = new sun.security.pkcs11.SunPKCS11("pkcs11.cfg");
Security.addProvider(p);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误.

访问限制:由于对所需库的限制,无法访问构造函数SunPKCS11(String)/usr/lib/jvm/java-6-sun-1.6.0.24/jre/lib/ext/sunpkcs11.jar

我究竟做错了什么?我在Ubuntu x86下使用Eclipse 3.5和Java SE 1.6.

最好的祝福.

java security provider smartcard pkcs#11

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

Android - 使用Dao Pattern和contentProvider

使用带有dao Pattern的ContentProvider是正确的.?或者它会带来任何性能问题?

我会尽力解释.我有一个contentProvider.一个活动,一个道和一个豆..

这是代码:

class Bean(){

 String name;

}

class Dao{

 Activity activity;

 public Dao(Activity activity){

 this.activity = activity;

public List<Bean> getAllBean() {

    Cursor c = activity.managedQuery(Bean.CONTENT_URI, PROJECTION,
                null, null, Bean.DEFAULT_SORT_ORDER);
    return BeanMapper.GetAllFromCursor(c);
    }
}

}

Class Activity{
.....


 onCreate(....){

  Dao dao = new Dao(this);
  List<Bean> aList = dao.getAllBean();

}
....}
Run Code Online (Sandbox Code Playgroud)

你怎么看 ?

问候

android dao android-contentprovider

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

Highcharts区域图,在X轴上方/下方使用2种填充颜色

Highcharts,我想用2种颜色填充区域图,正值得到一种颜色,负值得到另一种颜色.我已经能够做到这一点linearGradient,但必须根据这个调整size of the container.

是否有更通用的方法,例如设置值> 0 color 1, values < 0 color 2?

有关更多信息和示例,请参阅我的JSFiddle:http: //jsfiddle.net/GNvur/2/

colors highcharts

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