我创建了一个像这样的对话框:
我的对话片段:
func animationDidStop(_ anim: CAAnimation, finished flag: Bool) {
if flag { <do_what_you_need_to> }
}
现在我希望如果我点击&#34; btn_yes&#34;片段打开。我这样试过:
package com.aaron.waller.mrpolitik;
import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.ImageButton;
public class extendsDialog extends Dialog implements
android.view.View.OnClickListener {
public Activity c;
public Dialog d;
public ImageButton yes, no;
public extendsDialog(Activity a) {
super(a);
// TODO Auto-generated constructor stub
this.c = a;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.custom_dialog);
yes = (ImageButton) findViewById(R.id.btn_yes);
no = (ImageButton) findViewById(R.id.btn_no);
yes.setOnClickListener(this);
no.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_yes:
break;
case R.id.btn_no:
break;
default:
break;
}
dismiss();
}
}
然后它说&#34;错误的第二个参数类型&#34;新的SPD&#34;&#34;
我也尝试将它放在我的MainActivity.java中:
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_yes:
FragmentManager fm = c.getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.parteienlayout, new SPD());
ft.addToBackStack( "Tag");
ft.commit();
break;
case R.id.btn_no:
break;
default:
break;
}
dismiss();
}
并在对话框中点击:
public void tocdu(){
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.customdialog, new CDU());
ft.addToBackStack( "Tag");
ft.commit();
}
但它仍然无效。 我该如何实现呢?
答案 0 :(得分:0)
在SPD.class
public class SPD extends Fragment {}
确保导入以下包:
import android.app.Fragment;
这个想法是你使用getSupportFragmentManager()
然后在你的被叫framgent
中使用:import android.support.v4.app.Fragment;
或者如果您使用getFragmentManager()
你必须使用:import android.app.Fragment;