2 qq863017854 QQ863017854 于 2016.01.14 15:44 提问

小白 在做Android新闻端 用json获取网页数据 出现如下图的报错 不知道怎么改

图片说明!求告知 怎么改!
可以看这个http://ask.csdn.net/questions/232048

 private Handler getNewsHandler = new Handler(){
        public void handleMessage(android.os.Message msg) {
            String jsonData = (String) msg.obj;
            System.out.println(jsonData);
            try {
                JSONArray jsonArray = new JSONArray(jsonData);
                for (int i=0;i<jsonArray.length();i++){
                    JSONObject object = jsonArray.getJSONObject(i);
                    String id = object.getString("id");
                    String title = object.getString("title");
                    String excerpt = object.getString("excerpt");
                    String date = object.getString("date");
                    String comment_count = object.getString("comment_count");
//                  String custom_fields = object.getString("custom_fields");
                    String thumb_value_URL = object.getString("thumb_value_URL");
                                        System.out.println("title = " +title);
                    /*System.out.println("thumb_value = " +thumb_value);*/
                    newsList.add(new News(title, date, comment_count, thumb_value_URL));
                }
                adapter.notifyDataSetChanged();
            } catch (Exception e) {
                e.printStackTrace();
            }
        };
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        lvNews = (ListView) findViewById(R.id.lvNews);
        newsList = new ArrayList<News>();
        adapter = new NewsAdapter(this, newsList);

        lvNews.setAdapter(adapter);
        lvNews.setOnItemClickListener(this);
        HttpUtils.getNewsJSON(GET_NEWS_URL, getNewsHandler);
    }

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
        News news = newsList.get(position);
        Intent intent = new Intent(this, BrowseNewsActivity.class);
        intent.putExtra("Excerpt", 11);
        startActivity(intent);
    }

}

public class News {

private String title;

// private String excerpt;
private String date;
// private String id;
private String comment_count;
private String thumb_value;
// private String custom_fields;

public News(String title, String date, String comment_count, String thumb_value ){
    setTitle(title);

// setExcerpt(excerpt);
setDate(date);
// setId(id);
setComment_count(comment_count);
// setCustom_fields(custom_fields);
setThumb_value(thumb_value);}

public String getComment_count() {
    return comment_count;
}

public void setComment_count(String comment_count) {
    this.comment_count = comment_count;
}

public String getTitle() {
    return title;
}

public void setTitle(String title) {
    this.title = title;
}

public String getDate() {
    return date;
}

public void setDate(String date) {
    this.date = date;
}


public String getThumb_value() {
    return thumb_value;
}

public void setThumb_value(String thumb_value) {
    this.thumb_value = thumb_value;
}

}

 public class NewsAdapter extends BaseAdapter {

    private Context context;
    private List<News> newsList;

    public NewsAdapter(Context context, List<News> newsList){
        this.context = context;
        this.newsList = newsList;
    }

    @Override
    public int getCount() {
        return newsList.size();
    }

    @Override
    public News getItem(int position) {
        return newsList.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null){
            convertView = LayoutInflater.from(context).inflate(R.layout.news_item, null);
        }
        TextView Title = (TextView) convertView.findViewById(R.id.Title);
//      TextView excerpt = (TextView) convertView.findViewById(R.id.excerpt);
        TextView date = (TextView) convertView.findViewById(R.id.date);
        TextView comment_count = (TextView)convertView.findViewById(R.id.comment_count);
        ImageView thumb_value_URL = (ImageView) convertView.findViewById(R.id.thumb_value);

        News news = newsList.get(position);
        Title.setText(news.getTitle());
//      excerpt.setText(news.getExcerpt());
        date.setText(news.getDate());
        comment_count.setText(news.getComment_count());
//      String custom_fields = news.getCustom_fields();
    /*  HttpUtils.setPicBitmap(thumb_value,thumb_value_URL);*/
        return convertView;
    }
}

4个回答

u013908670
u013908670   2016.01.14 16:53
已采纳

String jsonData = (String) msg.obj;
System.out.println(jsonData);
try {
JSONArray jsonArray = new JSONArray(jsonData);
日志里面说37行有问题,我觉得也是,给的是JSONObject ,而你将之转换成JSONArray,会出现这种错误

u013908670
u013908670 回复QQ863017854: 我的eclipse不能开发Android,你的项目我只能看,还有就是,除非是你自己写的代码,别人的有些东西你一时半会看不到,要一点点找。
2 年多之前 回复
QQ863017854
QQ863017854 但是别人也是这么写的 没有问题 可以显示出来
2 年多之前 回复
qq787068730
qq787068730   2016.01.14 15:49

首先,这个不是报错,这是警告。警告不影响程序运行。你需要重新截个图

QQ863017854
QQ863017854 listview 没有显示 一片空白
2 年多之前 回复
QQ863017854
QQ863017854 listview 没有显示 一片空白
2 年多之前 回复
QQ863017854
QQ863017854 但是数据放不进去 list
2 年多之前 回复
u013908670
u013908670   2016.01.14 15:56

http://ask.csdn.net/questions/3384 你参考这个看看,

org.json.JSON.typeMismatch(JSON.java:111)
看到这句话的意思就是类型错配,简单的来说就是:获取给的字符串是JSONArray,而你将之转换成JSONObject,或者反过来就是给的是JSONObject ,而你将之转换成JSONArray,总之都会出现这种错误。

QQ863017854
QQ863017854 http://ask.csdn.net/questions/232048 大神可以帮我看看嘛 实在改不出来
2 年多之前 回复
u013908670
u013908670 回复QQ863017854: 有的,类型不一致,计算机不认识的。
2 年多之前 回复
QQ863017854
QQ863017854 这对数据放到实体类上有影响吗?
2 年多之前 回复
u013908670
u013908670   2016.01.14 17:02

图片说明
你看看这个,会不会有帮助。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
从网络获取json后实现新闻列表界面
从网络获取json数据并处理,实现新闻客户端,比较关键的是获取网络流,解析json数据
简单新闻客户端(3)---网络数据请求,json包解析
首先是Fragment嵌套一个包含listview的fragment。参考文章:Fragment嵌套Fragment实现多tab页面的效果在父fragemnt的oncreateview里面给父fragment添加子fragment,具体步骤如下: 1.获取fragmentmanager,但是是使用getChildFragmentManager()返回,赋值给viewpageadapter。
Android使用XML和JSON两种数据格式通过网络通信实现资讯客户端案例
Android使用XML和JSON两种数据格式通过网络通信实现资讯客户端案例!
Android——百度APIstore+Json——获取新闻频道+新闻数据
Android——百度APIstore+Json——获取新闻频道+新闻数据 package com.example.jreduch08.util; import android.content.Context; import android.os.Environment; import java.io.File; import java.io.FileNotFoundExce
Android---如何利用API实时获取各频道新闻?
基本上万事俱备了,博主我把开发新闻阅读器的相关知识都整理好了,接下来几天我要搞一个新闻阅读器(*^__^*) ~ 本次实例包含了利用API(从“百度APIStore”上找的),从网络上实时获取各种频道的新闻。 接下来,我们首先建一个Layout,上面放一个Spinner,用来展现各种新闻频道,而下面,我们放一个TextView,当选中Spinner中相应的频道时,TextVie
AndroidStudio——今日头条(可以实时获取数据的app)
今日头条包含以下模块:首页 视频 天气 和 我的 其中 首页用于加载实时的新闻频道及内容,可以实现点击图片查看图片详情,并且可以实现内容的收藏与取消收藏视频模块暂时未加入任何内容天气模块可以实现天气的实时更新,最多可以显示最近三天的天气情况我的 模块中 点击收藏,可以查看收藏的新闻内容
使用fastjson解析json抓取新浪新闻文章
使用fastjson解析json获取新浪新闻文章
OKhttp+Gson实现从网络上获取最新新闻
直接上效果图,画面太美,请保护好自己的小心脏。能画出这么漂亮的UI我都佩服我寄几。新闻列表:新闻详情: 是的 都是最新的新闻。、实现下面我们就来看看具体怎么实现的: 我一直觉得思路是非常重要的所以我先讲思路,有了思路,做起来就非常迅速了 先讲思路: 1.最新的新闻都是由聚合数据提供的(json数据),我们去申请下就好了;(当然你们也可以用我的URL,讲道理,是没有问题的) 2.通过OKht
Android 之 网络访问服务器,解析JSON数据(返回无乱码)
Android 之 网络访问服务器,解析JSON数据 分享到: 评论(0)|2014-04-21|发布 飞菲 提示:在访问网络,或者服务器的数据一定要注意 网络权限的声明:  1 <uses-permission android:name="android.permission.INTERNET"/>
Android自己写的一个网易新闻,简单明了,各大功能基本实现,只需要有很好的json数据即可!ndroid
花了一段时间写的网易新闻,Tabhost搭起的架子,每个activity对应多个flagment的构建。 1:顶部导航栏,点击顶部导航栏的选项,会改变对应的flagment,左右滑动 flagment顶部导航栏跟着变化 2.解决viewpager的嵌套,由于顶部导航图片是在flagment中,多个flagment被包含在外部viewpager,所以会冲突,已经解决 3.使用volley解析json数据(图片文字这是网易新闻的内容部分) 4.解决HorizontalScrollView与listview的滚动冲突,由于listview与其他空间共存,如果想一起上下滑动,必须解决 改变文字、改变风格、可以直接做自己想要的app,有bug的话望一起交流!