我正在使用类中的方法更新textView,当我运行应用程序时出现此错误:
A/libc: Fatal signal 6 (SIGABRT), code -6 (SI_TKILL)
我看了另一个关于stackoverflow的问题,但这是涉及webview的另一种编程方式,因此它并没有太大帮助。我尝试使用调试器来查找错误,但仍然会崩溃。
这是我的mainActivity的代码:
protected void onPostExecute(String s) {
super.onPostExecute(s);
try {
JSONObject jsonObject = new JSONObject(s);
dati.status = jsonObject.getString("status");
dati.totalResults = jsonObject.getInt("totalResults");
String articles = jsonObject.getString("articles");
JSONArray arr = new JSONArray(articles);
for(int i=0;i<arr.length();i++){
JSONObject jsonPart = arr.getJSONObject(i);
String source = jsonPart.getString("source");
JSONObject jsonPart2 = new JSONObject(source);
Source s1 = new Source(jsonPart2.getString("id"),jsonPart2.getString("name"));
dati.articoli.put(i, new Article(s1,jsonPart.getString("author"),jsonPart.getString("title"),
jsonPart.getString("description"),jsonPart.getString("url"),jsonPart.getString("urlToImage"),jsonPart.getString("publishedAt"),
jsonPart.getString("content")));
}
}catch (Exception e){
e.printStackTrace();
}
dati.stampaDati(0,txt_articolo,txt_contatore);
}
这是我的达蒂课
public class Dati {
public String status;
public int totalResults;
public ArrayMap<Integer,Article> articoli = new ArrayMap<Integer, Article>();
public void stampaDati(int articoloCorrente, TextView txt_articolo,TextView txt_contatore){
Log.i("asd",Integer.toString(this.totalResults));
txt_contatore.setText("articolo "+(articoloCorrente+1)+" di "+Integer.toString(this.totalResults));
txt_articolo.setText("Autore:"+articoli.get(articoloCorrente).sourceA.name);
}}
我知道json解析正确,所以问题应该出在textView上。 有人可以帮我弄清楚错误的含义和含义是什么吗?
答案 0 :(得分:1)
将此Integer.toString(this.totalResults)
更改为String.valueOf(totalResults)
并且您不应该在textView.setText()
例如
String displayStr1 = "articolo "+(articoloCorrente+1)+" di "+ String.valueOf(this.totalResults);
txt_contatore.setText(displayStr1);
String displayStr2 = "Autore:"+articoli.get(articoloCorrente).sourceA.name;
txt_articolo.setText(displayStr2)