昨天在开发过程中遇到一个问题,困扰了很长时间,并且直到现在也是没怎么解决.和老师讨论了一上午也没有个结果,先在此记录一下.
首先说明的是我要实现的效果如下
类似QQ的这个长按出现待办和删除的按钮,具体的实现大家可以去这里:http://www.eoeandroid.com/thread-326918-1-1.html.
需求就是这样,他给出的例子是在Activity中实现的,这样贴一下具体代码:
首先是这个待办和删除的自定义Dialog:
package com.example.listitemdeletedemo;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
/**
* @文件名称: MyDialog.java
* @功能描述: 自定义dialog
* @版本信息: Copyright (c)2014
* @开发人员: vincent
* @版本日志: 1.0
* @创建时间: 2014年3月18日 下午1:45:38
*/
public class MyDialog extends Dialog implements OnClickListener {
private TextView leftTextView, rightTextView;
private IDialogOnclickInterface dialogOnclickInterface;
private Context context;
public MyDialog(Context context, int theme) {
super(context, theme);
this.context = context;
// TODO Auto-generated constructor stub
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_dialog);
leftTextView = (TextView) findViewById(R.id.textview_one);
rightTextView = (TextView) findViewById(R.id.textview_two);
leftTextView.setOnClickListener(this);
rightTextView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
<span style="color:#ff6600;">// 注意这一句</span>
<span style="color:#33cc00;">dialogOnclickInterface = (IDialogOnclickInterface) context;</span>
switch (v.getId()) {
case R.id.textview_one:
dialogOnclickInterface.leftOnclick();
break;
case R.id.textview_two:
dialogOnclickInterface.rightOnclick();
break;
default:
break;
}
}
<span style="color:#33ff33;"> public interface IDialogOnclickInterface {
void