错误代码为Cannot resolve method 'makeText(Fragment_one, String, int)'

原因是因为Fragment为子UI,在直接使用Toast.makeText如果只写了this关键字的话,会发生获取上下文Activity错误  

解决方法

  1. 加上Activity名,例如MainActivity.this

  2. 使用尝试使用 getActivity() 方法获取上下文,并确保传递正确的参数类型。

Toast.makeText(getActivity(),"主机地址不能为空!",Toast.LENGTH_SHORT).show();

详细代码

	private View rootView;
    private Context mContext;

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        if (rootView == null) {
            rootView = inflater.inflate(R.layout.fragment_fragment_one, container, false);
            initView();
        } else {
            ViewGroup parent = (ViewGroup) rootView.getParent();
            if (parent != null) {
                parent.removeView(rootView);
            }
        }
        return rootView;

    }
    
      private void initView() {
        this.mContext = getActivity();
        //IP_ID=(EditText)rootView.findViewById(et_ip_id);
        
    }
    @Override
    public void onClick(View view) {
        switch (view.getId())
        {
            case R.id.btn_lj:
            {
                String ip_id=IP_ID.getText().toString();
                String ip_dkh=IP_DKH.getText().toString();
                int dkh=Integer.parseInt(ip_dkh.trim());
                if (TextUtils.isEmpty(ip_id)){
                    Toast.makeText(getActivity(),"主机地址不能为空!",Toast.LENGTH_SHORT).show();

                }else if(TextUtils.isEmpty(ip_dkh)){
                    Toast.makeText(getActivity(),"端口号不能为空!",Toast.LENGTH_SHORT).show();
                }
                else{
                    tcp=new TcpClientThread(ip_id,dkh,this);
                    tcp.start();
                }
            }
                break;
            case R.id.btn_fs:
            {
                String ssq=et_ssq.getText().toString();
                if(TextUtils.isEmpty(ssq)){
                    Toast.makeText(getActivity(),"发送内容不能为空!",Toast.LENGTH_SHORT).show();
                }
                else
                {
                    tcp.send(ssq.getBytes());
                }
            }
                break;
        }
    }

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐