android getSupportActionBar()。当使用齐射解析Json时,setTitle无效

时间:2016-01-22 07:10:50

标签: android json android-volley

我的目的是使用json解析中的String设置标题。

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_post);
     getSupportActionBar().setTitle(title);}

它正在工作......但是......在这种情况下..

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_post);
    int target_id=getIntent().getIntExtra("id",1);
    Postview("my name","my mail",target_id,this);}


private void Postview(final String name, final String email,final int target_id,final Context context) {

    StringRequest strReq = new StringRequest(Request.Method.GET,
            Config.URL_POST_VIEW+"/"+target_id, new Response.Listener<String>() {

        @Override
        public void onResponse(String response) {
            try {

                JSONObject jObj = new JSONObject(response);
                boolean error = jObj.getBoolean("error");
                if (!error) {
                    getSupportActionBar().setTitle(jObj.getString("title"));


                } else {
                }
            } catch (JSONException e) {
                // JSON error
            }

        }
    }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
        }
    });
}

我删除了其他不重要的代码......

json解析没有问题。

除了setTitle ......

之外,一切运作良好

2 个答案:

答案 0 :(得分:1)

您正在尝试更新不允许的后台线程上的UI(工具栏倾斜)。您只能在UI线程上更新用户界面。

提示:

如果您可以将崩溃报告添加到您的问题中,那么这将有助于每个人快速提供正确的建议。

答案 1 :(得分:0)

如果您使用Library作为ActionBar,请使用

getSupportActionBar().setTitle(jObj.getString("title"));

如果你不使用

getActionBar().setTitle(jObj.getString("title"));