2012-12-10 31 views
0

我想跟随本教程www.josecgomez.com/2010/05/03/android-putting-custom-objects-in-listview/ 而不是web服务我从本地json中获取数据文件。 我已经实现了几乎所有的东西,但我总是遇到同样的错误。 的logcat的节目:TypeToken错误与ArrayList

java.lang.NoClassDefFoundError: src.blablabla.List_Messages$1 
at src.blablabla.soundboard.List_Messages.onCreate(List_Messages.java:72) 

72号线:

Type collectionType = new TypeToken<ArrayList<messages>>(){}.getType(); 

我不熟悉的类型和TypeTokens,它是什么,我做错了什么?

为了给你更多的情况下,下面是我的代码的其余部分,包括线路72

public class List_Messages extends Activity { 
JSONArray myJsonArray = null; 
String s = ""; 

//ListView that will hold our items references back to main.xml 
ListView listView; 
//Array Adapter that will hold our ArrayList and display the items on the ListView 
MessagesAdapter arrayAdapter;  
//List that will host our items and allow us to modify that array adapter 
ArrayList<messages> messagesArray=null; 



@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_list_messages); 
    //Initialize ListView 
    listView = (ListView)findViewById(R.id.listView); 

    //Initialize our ArrayList 
    messagesArray = new ArrayList<messages>(); 
    //Initialize our array adapter notice how it references the ress_list_row.xml layout 
    arrayAdapter = new MessagesAdapter(List_Messages.this, R.layout.ress_list_row, messagesArray); 

    //Set the above adapter as the adapter of choice for our list 
    listView.setAdapter(arrayAdapter); 

    //Pass the parameters if needed , if not then pass dummy one as follows 
    Map<String, String> params = new HashMap<String, String>(); 
    params.put("var", ""); 

    myJsonArray = fromJsonFileToJsonArray("mssg_source.txt", this); 
    String response = myJsonArray.toString(); 

    try 
    { 
     //Parse Response into our object 
     Type collectionType = new TypeToken<ArrayList<messages>>(){}.getType(); 

     //JSON expects an list so can't use our ArrayList from the lstart 
     List<messages> lst= new Gson().fromJson(response, collectionType); 

     //Now that we have that list lets add it to the ArrayList which will hold our items. 
     for(messages m : lst) 
     { 
      messagesArray.add(m); 
     } 

     //Since we've modified the arrayList we now need to notify the adapter that 
     //its data has changed so that it updates the UI 
     arrayAdapter.notifyDataSetChanged(); 
    } 
    catch(Exception e) 
    { 
     Log.d("Error: ", e.getMessage()); 
    } 

感谢

回答

0

看起来像罐子您的宝贵时间没有适当地包括在我的项目,它现在不再触发错误了。 虽然,我仍然有一个问题,因为视图是空的,它不会显示消息,因为它应该