【问题标题】:get json object with Html.from not working使用 Html.from 获取 json 对象不起作用
【发布时间】:2016-12-31 13:44:45
【问题描述】:

有 json 对象,其值是来自 <img><src><p> 等标签的组合。 想要获取该值并使用Html.from() 方式放入文本视图。

这是我迄今为止的尝试:

public class MainActivity extends AppCompatActivity {

    ProgressDialog pDialog;
    public String html;
    public String sag;

    private final String url = "http://memaraneha.ir/%db%8c%da%a9%d9%be%d8%a7%d8%b1%da%86%da%af%db%8c-%d9%87%d9%85%d8%a7%d9%87%d9%86%da%af%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%db%8c-%d8%af%d8%a7%d8%ae%d9%84%db%8c";

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



        TextView htmlTextView = (TextView)findViewById(R.id.html_text);


        htmlTextView.setText(Html.fromHtml(sag, null, null));

        new GetContacts().execute();

    }
    public class GetContacts extends AsyncTask<Void, Void, Void> {

        private String TAG = "erfan";

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            // Showing progress dialog
            pDialog = new ProgressDialog(MainActivity.this);
            pDialog.setMessage("Please wait...");
            pDialog.setCancelable(false);
            pDialog.show();
        }

        @Override
        protected Void doInBackground(Void... arg0) {

            HttpHandler sh = new HttpHandler();


            // Making a request to url and getting response
            String jsonStr = sh.makeServiceCall(url);


            Log.e(TAG, "Response from url: " + jsonStr);

            if (jsonStr != null) {
                try {

                    JSONObject jsonObj = new JSONObject(jsonStr);


                    JSONObject c = jsonObj.getJSONObject("posts");


                    html = String.valueOf(c.getJSONObject("content"));


                } catch (final JSONException e) {
                    Log.e(TAG, "Json parsing error: " + e.getMessage());
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            Toast.makeText(getApplicationContext(),
                                    "Json parsing error: " + e.getMessage(),
                                    Toast.LENGTH_LONG)
                                    .show();
                        }
                    });
                }
            } else {
                Log.e(TAG, "Couldn't get json from server.");
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        Toast.makeText(getApplicationContext(),
                                "Couldn't get json from server. Check LogCat for possible errors!",
                                Toast.LENGTH_LONG)
                                .show();
                    }
                });
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);
            pDialog.dismiss();
            sag=html;
        }

    }
}

但是从这一行得到空异常:

 htmlTextView.setText(Html.fromHtml(sag, null, null));

如果有人可以帮忙

【问题讨论】:

    标签: android json android-asynctask


    【解决方案1】:

    由于设置为文本视图的“sag”值,您得到了空指针 你可以简单地将你的 textView 设为全局

    public TextView htmlTextView;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
    
    
        TextView htmlTextView = (TextView)findViewById(R.id.html_text);
    
    
        new GetContacts().execute();
    
    }
    
       @Override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);
            pDialog.dismiss();
            htmlTextView.setText(Html.from(html,arg,arg));
        }
    

    【讨论】:

      【解决方案2】:

      终于解决了我的问题,将背景中的 do in html = String.valueOf(c.getJSONObject("content")); 中的这一行更改为 html= c.getString("content");

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-09
        • 1970-01-01
        • 2018-02-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-04
        相关资源
        最近更新 更多