我知道你出现什么问题了,你是不是写了一个类继承了Dialog,然后再实例化,这个dialog,但是button按钮美发添加监听器是不? 如果你要是自己继承了DIalog的话,那么我们看看源码把! Dialog implements DialogInterface 也就是说Dialog继承了 DialogInterface这个接口 好的 我们再看看DialogInterface这个接口把 我们会发现DialogInterface 有一个方法: public static interface OnClickListener { public abstract void onClick(DialogInterface dialoginterface, int i); } 好的 那么也就是如果我们继承了Dialog的话,我们同样也继承了DialogInterface这个接口的ONclickListner方法所以我们再给button设置onclicklistner的时候就会出错,因为本身就是不同包的东西,现在放到一个类里面肯定就会出错! 解决方法:在给button 设置点击事件的时候,加上完整的包名就行了! 专门给你敲了个例子你看看: Activity里面: public class QuestionActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { Dialog ad = new MyDialog(this); ad.show(); return super.onKeyDown(keyCode, event); } } 自定义Dialog里面: public class MyDialog extends Dialog { Context context; public MyDialog(Context context) { super(context); this.context = context; init(); } public void init() { LinearLayout ll = new LinearLayout(context); ll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); Button btn = new Button(context); btn.setText("hello"); /************************************************************/ btn.setOnClickListener(new android.view.View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(context, "hello", 0).show(); MyDialog.this.dismiss(); } }); /**********************************************************/ ll.addView(btn); this.setContentView(ll); } } 注意*****行里面
一般来说在Android里显示Gif图片,只会显示第一帧。如果想显示gif图片的话可以用Movie来显示图片。在dialog显示图片可以使用AlertDialog加载一个布局,布局中显示你所要显示的图片。比如LayoutInflaterinflater=getLayoutInflater();Viewlayout=inflater.inflate(R.layout.dialog,(ViewGroup)findViewById(R.id.dialog));newAlertDialog.Builder(this).setTitle("自定义布局").setView(layout).setPositiveButton("确定",null).setNegativeButton("取消",null).show();希望能帮到你。
文件替换