我正在尝试按照本教程www.josecgomez.com/2010/05/03/android-putting-custom-objects-in-listview/ 我从本地json文件中获取数据而不是webservice。 我已经实现了几乎所有的东西,但我总是得到同样的错误。 logcat显示:
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();
我不熟悉Types和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 :(得分:0)
看起来jar没有正确包含在我的项目中,它现在不再触发错误。 虽然,我仍然有问题,因为视图是空的,它不会显示消息,因为它应该