【问题标题】:Toast is not showing吐司没有显示
【发布时间】:2017-04-05 09:20:53
【问题描述】:

我正在使用 volley 进行网络通话


齐射请求中的 Toast 未显示。我不知道如何从 fragment 获取警报对话框中的上下文。所以请给出我如何在凌空响应中打印吐司的解决方案。

public class TiffinMenuFragment extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    final AlertDialog.Builder alertdialog = new AlertDialog.Builder(getActivity());
        LayoutInflater inflater = (LayoutInflater) getActivity().getBaseContext()
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View v = inflater.inflate(R.layout.fragment_tiffinlayout, null);
    alertdialog.setView(v);
    alertdialog.setCancelable(false);


    final AlertDialog dialog = alertdialog.create();

    add.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(final View view) {
            String type=selectmenu.getSelectedItem().toString();
            Log.v("java1",type);


            String url_menu=UrlString.url_string;
            url_menu = url_menu.replace(" ", "%20");
            Log.v("url",url_menu);
            final StringRequest stringRequest=new StringRequest(Request.Method.GET, url_menu, new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    Log.v("Response",response);
                    JSONObject obj= null;
                    try {
                        obj = new JSONObject(response);
                        String objResponse=obj.getString("success");
                        Log.v("Response1",objResponse);
                        Toast.makeText(view.getContext(),"Task is Completed",Toast.LENGTH_LONG).show();
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }

                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                Log.v("type",error.getMessage());
                }
            });
            MySingleton.getInstance(getActivity().getApplicationContext()).addToRequestque(stringRequest);
            dialog.dismiss();

        }
    });
    cancle.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            dialog.dismiss();

        }
    });




    return dialog;

}
}

【问题讨论】:

  • 这里是answer
  • 您是否收到日志消息以进行响应?
  • 欢迎来到 StackOverflow!请阅读用户指南,了解如何在发布问题之前提出好问题 (stackoverflow.com/help/how-to-ask) 谢谢
  • 设置getActivity()而不是view.getContext()
  • 是的,我收到日志消息@Mohammed Atif

标签: android android-fragments android-volley android-alertdialog


【解决方案1】:

只是做

Toast.makeText(getActivity(),"Text!",Toast.LENGTH_SHORT).show();

【讨论】:

  • 虽然此代码可能会解决问题,但应始终为其添加解释,说明为什么/如何解决问题。
【解决方案2】:
                Toast.makeText(dialog.getContext(),"Task is Completed",Toast.LENGTH_LONG).show();

使用这个。

【讨论】:

    【解决方案3】:

    您在 Toast 中使用的上下文不正确,低于 1

     Toast.makeText(getActivity(),"Task is Completed",Toast.LENGTH_LONG).show();
    

    【讨论】:

    • 你在哪里使用 TiffinMenuFragment ??
    • 我正在从自定义适配器之一调用此片段
    【解决方案4】:

    使用:

    Toast.makeText(getActivity().getApplicationContext(),"Task is
    Completed",Toast.LENGTH_LONG).show();
    

    【讨论】:

      【解决方案5】:
        Toast.makeText(dialog.getActivity(),"Task is Completed",Toast.LENGTH_LONG).show();
      

      【讨论】:

      • 虽然此代码可能会回答问题,但提供有关 如何 和/或 为什么 解决问题的附加 context 将改善答案的长度长期价值。请记住,您正在为将来的读者回答问题,而不仅仅是现在提问的人!请edit您的答案添加解释,并说明适用的限制和假设。提及为什么这个答案比其他答案更合适也没有什么坏处。
      【解决方案6】:

      你不能从后台线程触摸 UI

      要显示吐司,请使用此代码

      activity.runOnUiThread(new Runnable() {
          public void run() {
              Toast.makeText(activity, "Hello", Toast.LENGTH_SHORT).show();
          }
      });
      

      或者请求失败并且没有调用 onResponse 函数。

      【讨论】:

      • 这个东西是后台进程,也是线程final StringRequest stringRequest=new StringRequest(Request.Method.GET, url_menu, new Response.Listener() { @Override public void onResponse(String响应){}
      • 后台操作通常称为线程,它不能触摸 UI。为此,您需要使用上面的代码。请尝试学习一些对您有帮助的基类。
      猜你喜欢
      • 2019-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多