【发布时间】:2019-01-15 15:49:23
【问题描述】:
使用我的应用程序时,我有一个 Picker 控件(在 Fragment 中),当用户单击它时,将显示一个新的 Menu Activity,其中包含一些 Items 列表,当用户单击任何项目时,Activity 将完成,并且界面应传输所选的 Item 字符串再次到 Fragment 中的 Picker,
这是我的菜单活动:
public class Menu extends AppCompatActivity {
ListView listView;
public interface ItemListener {
void getItem(String s);
}
ItemListener itemListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
// Error Goes Here
itemListener = (ItemListener) this;
// Define and fill the list view
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
itemListener.getItem("Some Item");
finish();
}
});
}
}
还有我的片段:
public class Addorder extends Fragment implements Menu.ItemListener {
Picker picker;
public Addorder() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
view = inflater.inflate(R.layout.fragment_addorder, container, false);
picker = (Picker) view.findViewById(R.id.picker);
return view;
}
@Override
public void getItem(String s) {
picker.setChosenItem(s);
}
}
但是我遇到了铸造错误:
Caused by: java.lang.ClassCastException: Menu cannot be cast to Menu$ItemListener
我错了,任何帮助将不胜感激
【问题讨论】:
-
您的
Activity没有实现您的接口。您还需要在Activity中实现它。