android-fragments 未显示吐司

jslywgbw  于 2022-11-13  发布在  Android
关注(0)|答案(6)|浏览(162)

我正在使用网络通话
在齐射请求中的吐司未显示。我不知道如何从片段中获取警报对话框中的上下文。所以请给予如何在齐射响应中打印Toast的解决方案。

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;

}
}
jucafojl

jucafojl1#

就做

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

7jmck4yq2#

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

用这个。

bqjvbblv

bqjvbblv3#

您在吐司中使用上下文不是下面一个正确用法

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

mm5n2pyu4#

用途:

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

wmtdaxz35#

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

hmae6n7t6#

您无法从后台线程访问UI
要显示吐司请使用以下代码

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

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

相关问题