在使用android Fragment时出现Toast.makeText错误Cannot resolve method ‘makeText(Fragment_one, String, int)‘
在使用android Fragment时出现Toast.makeText错误Cannot resolve method 'makeText(Fragment_one, String, int)'
·
错误代码为Cannot resolve method 'makeText(Fragment_one, String, int)'
原因是因为Fragment为子UI,在直接使用Toast.makeText如果只写了this关键字的话,会发生获取上下文Activity错误
解决方法
-
加上Activity名,例如MainActivity.this
-
使用尝试使用
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;
}
}
更多推荐
已为社区贡献2条内容
所有评论(0)