如何使用volley将下载的文本发送到下一个活动

时间:2014-12-29 15:36:56

标签: javascript android json android-volley

我的问题非常简单。我正在下载以下内容并在listview中解析数据。单击列表视图中的项目我打开一个详细信息页面,其中包含该项目的更多详细信息。我无法将此json数据发送到详细活动。我如何处理此活动以及详细活动?

我的行为代码:



public class Frontpage extends ActionBarActivity{
	private String TAG = this.getClass().getSimpleName();
    private ListView lstView;
    private RequestQueue mRequestQueue;
    private ArrayList<NewsModel> arrNews ;
    private LayoutInflater lf;
    private VolleyAdapter va;
    private ProgressDialog pd;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.trending);
        
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    	Intent newActivity4=new Intent();
    	setResult(RESULT_OK, newActivity4);
        
        
        lf = LayoutInflater.from(this);


        arrNews = new ArrayList<NewsModel>();
        va = new VolleyAdapter();

        lstView = (ListView) findViewById(R.id.listView);
        lstView.setAdapter(va);
        mRequestQueue =  Volley.newRequestQueue(this);
        String url = "http://pipes.yahooapis.com/pipes/pipe.run?_id=giWz8Vc33BG6rQEQo_NLYQ&_render=json";
        pd = ProgressDialog.show(this,"Loading...","Please Wait...");
        pd.setCancelable(true); 
        try{
           
        }catch(Exception e)
        {

            }
        JsonObjectRequest jr = new JsonObjectRequest
        		(Request.Method.GET,url,null,new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                Log.i(TAG,response.toString());
                parseJSON(response);
                va.notifyDataSetChanged();
                pd.dismiss();
;            }
        },new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
            	if (error instanceof NoConnectionError){
                   	Toast.makeText(getBaseContext(), "Bummer..There's No Internet connection!", Toast.LENGTH_LONG).show();

                }};
            });
        mRequestQueue.add(jr);

 }
    @Override
    public void onDestroy() {
        super.onDestroy();
        dismissPd();
    }

    private void dismissPd() {
        if (pd != null) {
            pd.dismiss();
            pd = null;
        }
    }

    private void parseJSON(JSONObject json){
        try{
            JSONObject value = json.getJSONObject("value");
            JSONArray items = value.getJSONArray("items");
            for(int i=0;i<items.length();i++){

                    JSONObject item = items.getJSONObject(i);
                    NewsModel nm = new NewsModel();
                    nm.setTitle(item.optString("title"));
                    nm.setDescription(item.optString("description"));
                    nm.setLink(item.optString("link"));
                    nm.setPubDate(item.optString("pubDate"));
                    arrNews.add(nm);
            }

            lstView.setOnItemClickListener(new AdapterView.OnItemClickListener(){ 

            	@Override
            	public void onItemClick(AdapterView<?> parent, View view,
            	                        int position, long id) { 
            		Intent intent = new Intent(Frontpage.this, NewsDetails.class);    
            	    startActivity(intent);
            	}
            	});}


        
        catch(Exception e){
            e.printStackTrace();
        }

    }
&#13;
&#13;
&#13;

Log cat:

12-29 22:33:07.701:E / Trace(1210):错误打开跟踪文件:没有这样的文件或目录(2) 12-29 22:33:07.751:W / dalvikvm(1210):拒绝重新开启DEX&#39; /system/framework/hwframework.jar' 12-29 22:33:08.021:W / System.err(1210):无效的int:&#34;&#34; 12-29 22:33:09.541:I / Adreno200-EGL(1210):: EGL 1.4 QUALCOMM build:AU_LINUX_ANDROID_JB_REL_2.0.3.04.01.01.21.010_msm8625_JB_REL_2.0.3_Merge_release_AU(Merge) 12-29 22:33:09.541:I / Adreno200-EGL(1210):建造日期:10/26/12周五 12-29 22:33:09.541:I / Adreno200-EGL(1210):当地分公司: 12-29 22:33:09.541:I / Adreno200-EGL(1210):远程分支:quic / jb_rel_2.0.3 12-29 22:33:09.541:I / Adreno200-EGL(1210):本地补丁:无 12-29 22:33:09.541:I / Adreno200-EGL(1210):重建分支:AU_LINUX_ANDROID_JB_REL_2.0.3.04.01.01.21.010 + NOTHING 12-29 22:33:10.181:I / Choreographer(1210):跳过45帧!应用程序可能在其主线程上做了太多工作。 12-29 22:33:19.971:I / Choreographer(1210):跳过43帧!应用程序可能在其主线程上做了太多工作。 12-29 22:33:41.561:I / Frontpage(1210):{&#34; value&#34;:{&#34; callback&#34;:&#34;&#34;,&#34; generator& #34;:&#34; http://pipes.yahooapis.com/pipes/",&#34; pubDate&#34;:&#34; Mon,29 Dec 2014 19:33:38 + 0000& #34;,&#34; title&#34;:&#34; Cycling News&#34;,&#34; items&#34;:[{&#34; guid&#34;:{&#34; content&# 34;:&#34;瓮:newsml:sports.yahoo,乐高:19780928:顶部,物品5d2ebd25-84e5-3b2c-9939-fa928362f76e -1-:1&#34;&#34; isPermaLink&#34;:& #34; false&#34;},&#34; pubDate&#34;:&#34; Thu,2014年12月25日05:06:03 PST&#34;,&#34; category&#34;:&#34; SC&#34;,&#34; title&#34;:&#34; Trott宣布与英国队友肯尼(路透社)签约,&#34; y:title&#34;:&#34; Trott宣布与英国队友Kenny(路透社)订婚,&#34; y:id&#34;:{&#34;价值&#34;:&#34; urn:newsml:sports.yahoo,lego: 19780928:顶部,物品5d2ebd25-84e5-3b2c-9939-fa928362f76e -1-:1&#34;&#34;固定链接&#34;:&#34;假&#34;}&#34;描述&#34; :&#34;伦敦(路透社) - 英国奥运会田径自行车金牌得主Laura Trott和Jason Ken你要打结。每个人都圣诞快乐。感谢@ JasonKenny107以及整个家庭#engaged \&#34;我在周四的Twitter上写道,我有最惊人的几天。 22岁的特罗特在2012年伦敦奥运会上获得两枚金牌,同时26岁的肯尼也在团队冲刺和个人冲刺中登上领奖台。预计两人都将成为2016年里约奥运会英国队的一员。(Martyn Herman编辑)&#34;,&#34;链接&#34;:&#34; http://us.rd.yahoo的.com /运动/ RSS / SC / SIG = 137v5fe67 / 的http%3A // sports.yahoo.com /消息/特洛特-宣布与卡合英国队友-肯尼-130603685 - spt.html&# 34;,&#34; Y:出版&#34; {&#34;分钟&#34;:&#34; 6&#34;&#34; DAY_OF_WEEK&#34;:&#34; 4&#34; &#34; UTIME&#34;:&#34; 1419512763&#34;&#34;时区&#34;:&#34; UTC&#34;&#34; DAY_NAME&#34;:&#34;周四&#34;&#34;第二&#34;:&#34; 3&#34;&#34; day_ordinal_suffix&#34;:&#34;第&#34;&#34;一个月&#34 ;: &#34; 12&#34;&#34;一年&#34;:&#34; 2014&#34;&#34; MONTH_NAME&#34;:&#34;十二月&#34;&#34;天& #34;:&#34; 25&#34;&#34;小时&#34;:&#34; 13&#34;}&#34; Y:repeatcount&#34;:&#34; 1&#34 ;},{&#34; GUID&#34; {&#34;内容&#34;:&#34;瓮:newsml:sports.yahoo,乐高:19780928:顶部,物品d8de91ac-8da9-3d9d-81bb -79a44e8d3c41-l:1&#34;,&#34; isPermaLink&#34;:&#34; false&#34;},&#34; pubDate&#34;:&#34; Fri,2014年12月19日16:26 :26 PST&#34;,&#34;媒体:conten T&#34 ;: {&#34;类型&#34;:&#34;图像/ JPEG&#34;&#34; URL&#34;:&#34; HTTP://l.yimg.com/iu /api/res/1.2/kuPd5jCbslBsMo8k0akURQ--/YXBwaWQ9eXZpZGVvO2NoPTIwMDA7Y3I9MTtjdz0yMDAwO2R4PTUwMTtkeT0xO2ZpPXVsY3JvcDtoPTEzMDtxPTEwMDt3PTEzMA--/http://media.zenfs.com/en_us/Sports/ap/201412191711618863458","width":"130& #34;&#34;高度&#34;:&#34; 130&#34;}&#34;类别&#34;:&#34; SC&#34;&#34;标题&#34 ;: &#34; 2阿姆斯特朗的同事与Landis(美联社)和#34;&#34; y:title&#34;:&#34; 2阿姆斯特朗的同事与Landis(美联社)解决诉讼&# 34;,&#34; Y:ID&#34; {&#34;值&#34;:&#34;瓮:newsml:sports.yahoo,乐高:19780928:顶部,物品d8de91ac-8da9-3d9d- 81bb-79a44e8d3c41 -1-:1&#34;&#34;固定链接&#34;:&#34;假&#34;}&#34;描述&#34;:&#34;

&lt; / a&gt;&lt; / p&gt;

德克萨斯州奥斯汀(美联社) - 兰斯阿姆斯特朗的两位长期合作伙伴已同意向联邦政府支付50万美元以解决提起的举报人诉讼前队友Floyd Landis。&lt; / p&gt;&#34;,&#34;媒体:信用&#34;:{&#34;内容&#34;:&#34;美联社&#34;,&# 34;作用&#34;:&#34;提供商&#34;}&#34;连结&#34;:&#34; HTTP://us.rd.yahoo.com/sports/rss/sc/SIG= 13141nrib / HTTP%3A // sports.yahoo.com /消息/ 2-阿姆斯特朗缔​​结算的-诉讼-兰迪斯-223026201 - spt.html&#34;&#34;介质:文本&#34 ;:{&#34;内容&#34;:&#34;文件 - 在2011年2月15日的档案照片中,Lance Armstrong在德克萨斯州奥斯汀的一次采访中停顿了一下。 Lance Armstrong的两位长期合作伙伴已同意向联邦政府支付50万美元,用于解决前队友Floyd Landis于12月19日星期五提起的举报人诉讼。 12-29 22:33:42.721:I / Choreographer(1210):跳过33帧!应用程序可能在其主线程上做了太多工作。 12-29 22:33:54.031:W / dalvikvm(1210):threadid = 1:线程退出,未捕获异常(group = 0x4159c438) 12-29 22:33:57.481:E / Trace(2300):错误打开跟踪文件:没有这样的文件或目录(2) 12-29 22:33:57.531:W / dalvikvm(2300):拒绝重启开机DEX&#39; /system/framework/hwframework.jar' 12-29 22:33:57.651:W / System.err(2300):无效的int:&#34;&#34; 12-29 22:33:58.181:I / Adreno200-EGL(2300):: EGL 1.4 QUALCOMM build:AU_LINUX_ANDROID_JB_REL_2.0.3.04.01.01.21.010_msm8625_JB_REL_2.0.3_Merge_release_AU(Merge) 12-29 22:33:58.181:I / Adreno200-EGL(2300):建造日期:10/26/12周五 12-29 22:33:58.181:I / Adreno200-EGL(2300):当地分公司: 12-29 22:33:58.181:I / Adreno200-EGL(2300):远程分支:quic / jb_rel_2.0.3 12-29 22:33:58.181:I / Adreno200-EGL(2300):本地补丁:无 12-29 22:33:58.181:I / Adreno200-EGL(2300):重建分支:AU_LINUX_ANDROID_JB_REL_2.0.3.04.01.01.21.010 + NOTHING

1 个答案:

答案 0 :(得分:0)

您可以使用Intent将简单数据从一个活动发送到另一个活动。您可以使用以下内容将JSON数据作为String传递:

intent.putExtra("OBJECT_DETAILS", myJSONString);

稍后您可以阅读下一个活动:

String myJsonData= i.getStringExtra("OBJECT_DETAILS");