从View启动对话框

时间:2013-11-08 14:01:10

标签: android

我正在学习Android并且对我的以下任务感到有点困惑.. 在我的应用程序中,MainActivity使用扩展View的类。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    panel = new MyPanel(this);
    setContentView(panel);
    panel.requestFocus();
}

我有一个包含3个项目的菜单,允许用户在视图上绘制一些原始数字。因此,当用户选择一个数字时,我启动我的Dialog Fragment以获取它的一些参数。 DialogFragment通过接口与我的MainActivity“通信”,MainActivity实现并且我的DialogFragment声明。这里没有问题!但我的任务的下一件事是让用户触摸已绘制的图形和对话框,并显示该图形的参数,以便用户可以更改并保存。删除一个人物不是问题,但是!我的知识不足以从视图开始对话或者有人会告诉我如何完成任务? ...我考虑过intenets(并开始活动,而不是对话),但是哪个班级会收到新数据?哦,我肯定做错了,请帮助我 非常感谢你的时间!!

3 个答案:

答案 0 :(得分:0)

您可以将onTouchListener设置为您的视图

然后,当用户触摸视图时,您将进入该听众的onTouch()

从那里你可以调用Activity的方法来启动对话框。您也将创建该方法。

由于您了解视图的所有内容,因此您可以将该数据传递给该方法和对话框。

答案 1 :(得分:0)

如果要显示对话框,唯一需要的是Context对象。 您可以使用getContext()方法在View子类中检索它:

public class Panel extends View {
    ...
    public void showDialog() {
         AlertDialog.Builder builder = new AlertDialog.Builder(getContext());

         builder.setTitle(...);  
         ...

         builder.show();
    }
    ...
}

答案 2 :(得分:0)

我决定在我的Activity中放入onTouch方法,它运行得很好!非常感谢,伙计们!