假设我有这个按钮:
<Button
android:id="@+id/idone"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="D2"
android:onClick="myMeth"/>
我曾多次使用它来调用布局 xml 中的方法,因为它从扩展此类视图的活动中调用方法。
最近使用 DialogFragments,它根本不起作用。我不断收到错误消息,告诉我这种方法不存在。那么它在哪里寻找这种方法呢?我已将其添加到 DialogFragment 类中:
public class myActivity extends DialogFragment {
public DiceDialog() {
// empty constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.myDialog, container);
getDialog().setTitle("Hello");
return view;
}
public void myMeth(View view) {
//...
}
以及在实例化 FragmentManager 并调用对话框的活动中:
public Class MainActiviry Extends FragmentActivity {
//...
public void onCreate(Bundle savedInstanceState) {
// ..
FragmentManager fm = getSupportFragmentManager();
MyActivity dialog = new AddDiceDialog();
dialog.show(fm, "tag");
}
public void myMeth(View view){
//...
}
消息仍然是 MyMeth 没有找到。
我已经读过使用接口和侦听器是在活动和对话片段之间进行通信的正确方法,但我在这里试图弄清楚的是 myMeth 调用的位置,因为它被调用了。