Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我希望显示描述,但获取整个json数据_Android_Json_Webview - Fatal编程技术网

Android 我希望显示描述,但获取整个json数据

Android 我希望显示描述,但获取整个json数据,android,json,webview,Android,Json,Webview,我无法在JSON中获取特定字符串描述中的数据。相反,当单击listitem时,我会在我的webview中获取整个JSON数据。在webview中,我在json文件中获得了如下所示的全部json,我只希望在webview中显示描述。欢迎提供帮助 json文件 { "status": "ok", "source": "techcrunch", "sortBy": "top", -"articles": [ -{ "author": "Devin Coldewey", "title": "A mesh

我无法在JSON中获取特定字符串描述中的数据。相反,当单击listitem时,我会在我的webview中获取整个JSON数据。在webview中,我在json文件中获得了如下所示的全部json,我只希望在webview中显示描述。欢迎提供帮助

json文件

{
"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"
}


德维什。如果只想在webview中显示文章,那么首先点击URL并获取ArrayList中的所有文章,或者直接获取JSONArray。 1.如果使用arraylist,则使用GSON库或 2.如果直接获取项目的JSONArray,则使用toString()将该JSONArray转换为字符串。
之后,创建一个HTML字符串,并在该HTML字符串的正文部分添加此文章字符串,如:

您能更好地解释“我无法”并指出代码的哪些部分是相关的吗?例如,是否有必要提供所有“导入”-s?我希望在webview中使用新闻dwscription,但它显示的是带有url、图像的整个json数据,等等,给我们更多的细节,什么不起作用?放置日志/代码当emulator运行时,我在listview中获取新闻标题,然后点击其中一个,然后我只需要描述,但我得到的是上面给出的json数据。那么hw我应该只获取json的描述部分吗?放置HERO类,并用我的代码更新代码,我将帮助您命名字符串(ARRAYLIST/JSONARRAY)
    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);



        }

    }
package com.example.murarilal.volley;

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/v2/top-headlines?sources=techcrunch&apiKey=d6eaad863cc640a7a6864d18196bea9e";

    @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) {
                Hero hero = heroList.get(i);
                Intent intent=new Intent(getApplicationContext(),ArticleActivity.class);
                //hero want to use any method from your hero object, example : getImageURL();
                intent.putExtra("description",hero.getImage());
                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);
    }
}
public class Hero {

    String description,image;

    public Hero(String description,String image) {
        this.description = description;
        this.image=image;
    }


    public String getDescription()
    {
        return description;
    }
    public String getImage()

    {
        return image;
    }


}
 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);
                //hero want to use any method from your hero object, example : getImageURL();
                intent.putExtra("description",hero.getImage());
                startActivity(intent);

            }
        });
{
    "status": "error",
    "code": "apiKeyInvalid",
    "message": "Your API key is invalid or incorrect. Check your key, or go to https://newsapi.org to create a free API key."
}