-1

我正在研究 Android,对我的以下任务有点困惑。在我的应用程序中,MainActivity 使用扩展 View 的类。

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

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

4

3 回答 3

0

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

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

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

         builder.show();
    }
    ...
}
于 2013-11-08T14:09:07.923 回答
0

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

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

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

由于您了解有关视图的所有信息,因此您将能够将该数据传递给该方法和对话框。

于 2013-11-08T14:06:53.827 回答
0

我决定在我的 Activity 中加入 onTouch 方法,效果很好!非常感谢,伙计们!

于 2013-11-08T15:59:14.697 回答