我正在使用一个片段并尝试做一些简单的事情,例如触发吐司消息并遇到问题。我正在课堂上扩展片段。
public class UsersView extends Fragment {
View myView;
String globalUserID;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
myView = inflater.inflate(R.layout.users, container, false);
//Global
globalUserID = UserSettings.getUserID();
System.out.println("*** USERSETTINGS " + globalUserID);
if (globalUserID == "empty"){
Toast.makeText(UsersView.this, "Something went wrong :(", Toast.LENGTH_LONG).show();
}
// The End
return myView;
}
}
我的麻烦来自吐司行,它不允许我使用UsersView.this,因为“没有找到合适的方法来制作文本”如果我不能以这种方式使用碎片我需要完全回到绘图板。有什么建议?一直坚持这个
答案 0 :(得分:4)
Toast.makeText()
方法的第一个参数是Context
。 Fragment
不是Android Context
(与Activity
不同)。
而不是UsersView.this
,传递getActivity()
。
答案 1 :(得分:1)
在片段
中使用getActivity()
Toast.makeText(getActivity(), "Something went wrong :(", Toast.LENGTH_LONG).show();
答案 2 :(得分:1)
片段必须是活动的内部类(ActivityName
),才能使用ActivityName.this
。由于不是这种情况,请改用getActivity()
。
Toast.makeText(getActivity(),"Something went wrong :(", Toast.LENGTH_LONG).show();