2017-11-15 1 views
0

Ich bin nicht in der Lage, Daten in bestimmten Zeichenfolge Beschreibung in meinem JSON zu erhalten. Stattdessen bekomme ich ganze JSON-Daten in meiner Webansicht, wenn ich auf Listeneintrag klicke.Erhalten der gesamten Json-Daten anstelle von bestimmten Zeichenfolge

JSON-Datei

{ 
"status": "ok", 
"source": "techcrunch", 
"sortBy": "top", 
-"articles": [ 
-{ 
"author": "Devin Coldewey", 
"title": "A mesh network spontaneously erupts in the US and helps connect Puerto Rico", 
"description": "When goTenna put out their Mesh device earlier this year, I thought the off-grid gadgets would be great for an emergency kit or back-country hike. But it..", 
"url": "https://techcrunch.com/2017/11/14/a-mesh-network-spontaneously-erupts-in-the-us-and-helps-connect-puerto-rico/", 
"urlToImage": "https://tctechcrunch2011.files.wordpress.com/2017/11/gotennapr.png", 
"publishedAt": "2017-11-14T18:41:28Z" 
}, 

Aktueller Code:

package com.example.murarilal.volley; 

import android.content.Intent; 
import android.os.Bundle; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.View; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

public class ArticleActivity extends AppCompatActivity { 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_article); 
     String url="https://newsapi.org/v1/articles?source=techcrunch&apiKey=59b308aec9f242fe98b527ab9ba93199"; 


     WebView webView=(WebView)findViewById(R.id.webView); 
     webView.getSettings().setJavaScriptEnabled(true); 
     webView.setWebViewClient(new WebViewClient()); 

     Intent intent=getIntent(); 
     webView.loadDataWithBaseURL(url,null,intent.getStringExtra("description"),"text/html","UTF-8"); 
     webView.loadUrl(url); 



    } 

} 

dies ist die Haupttätigkeit Paket com.example.murarilal.volley; diese

import android.content.Intent; 
import android.support.annotation.NonNull; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.util.Base64; 
import android.util.Log; 
import android.view.View; 
import android.widget.Adapter; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.ListAdapter; 
import android.widget.ListView; 

import com.android.volley.AuthFailureError; 
import com.android.volley.Request; 
import com.android.volley.RequestQueue; 
import com.android.volley.Response; 
import com.android.volley.VolleyError; 
import com.android.volley.toolbox.JsonObjectRequest; 
import com.android.volley.toolbox.StringRequest; 
import com.android.volley.toolbox.Volley; 

import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

import java.util.ArrayList; 
import java.util.Collection; 
import java.util.HashMap; 
import java.util.Iterator; 
import java.util.List; 
import java.util.ListIterator; 
import java.util.Map; 

public class MainActivity extends AppCompatActivity { 
    RequestQueue queue; 
    ListView listView; 
    List<Hero> heroList; 



    private String url="https://newsapi.org/v1/articles?source=techcrunch&apiKey=59b308aec9f242fe98b527ab9ba93199"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     queue= Volley.newRequestQueue(this); 
     home(); 

     listView = (ListView) findViewById(R.id.listView); 
     heroList = new ArrayList<>(); 

     listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 

       Intent intent=new Intent(getApplicationContext(),ArticleActivity.class); 
       intent.putExtra("description",url); 
       startActivity(intent); 

      } 
     }); 



    } 

    public void home() 
    { 

     JsonObjectRequest request =new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() { 
      @Override 
      public void onResponse(JSONObject response) { 

       try { 
        JSONObject obj = new JSONObject(String.valueOf(response)); 

        JSONArray array = obj.getJSONArray("articles"); 

        for (int i = 0; i < array.length(); i++) { 

         Hero hero=new Hero((String) array.getJSONObject(i).get("title"),(String) array.getJSONObject(i).get("urlToImage")); 
         heroList.add(hero); 

        } 

        ListViewAdapter adapter = new ListViewAdapter(heroList, getApplicationContext()); 
        listView.setAdapter(adapter); 
       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 



      } 

     } 
       , new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 

      } 
     }); 



     queue.add(request); 
    } 


    } 
+0

Könnten Sie prettify Ihre JSON? Wäre einfacher zu lesen und du würdest sehen, dass es kein komplettes JSON ist ... das Ende fehlt –

+0

Kannst du mir beschreiben, was du willst? und was passiert? – Xenolion

+0

Ich brauche nur deinen 'Hero'-Klassencode, um dir eine vollständige Antwort zu geben! Bearbeite deine Frage und füge den Code in 'Hero' ein! – Xenolion

Antwort

0

Wechsel:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 
       Hero hero = heroList.get(i); 
       Intent intent=new Intent(getApplicationContext(),ArticleActivity.class); 
       intent.putExtra("description",hero.getDescription()); 
       startActivity(intent); 

      } 
     }); 
+0

Woher wussten Sie, dass 'getDescription()' existiert? – Xenolion

+0

Oh, ich nehme den Namen des Param an. – diegoveloper

+0

Oooh du bist dann gut !! – Xenolion

Verwandte Themen