我的应用程序中只有一个活动。之前我只是将视图和对话框静态存储在活动中,这样我就可以从任何地方访问它们。但我知道这是一种糟糕的做法,因为它会导致内存泄漏。
所以我使它们是非静态的,但是现在我需要在我的视图层次结构中有一个对我的活动的引用,以访问存储在活动中的视图和对话框。
示例:
public class MainActivity extends Activity {
private CustomDialog a;
private CustomView b;
@Override
protected void onCreate(Bundle savedInstanceState) {
a = new CustomDialog(this);
b = new CustomView(this);
}
}
public class CustomView extends Button implements OnClickListener {
public CustomView(Context context) {
super(context);
setOnClickListener(this);
}
@Override
public void onClick(View view) {
//wants to show dialog a
MainActivity.a.show(); //Not possible -> a is not static
mainActivity.a.show(); //<-- needs a reference of the activity
// but where from?
}
}
我在下面贴出了答案!由于某些原因,StackOverflow只能让我在两天内接受自己的答案
我不知道您的视图层次结构到底是什么样子的。
例如,我将您的问题想象为:活动A有一个recyclerview R,现在R中的每个ViewWholder H都应该能够触发A中的某个方法。
在这种情况下,可以将活动的引用传递给recyclerview适配器,然后由适配器将其传递给ViewWholder。然后在(ViewHolder)视图的onClick方法中使用它。在这里,您可以使用“callback”模式。在stackoverflow上有很多关于这个的帖子,例如这里。
实现取决于实际的层次结构。如果您的另一个视图在一个片段中,那么您也可以使用(共享的)ViewModel。根据您的图片,我首先想到的是回调模式方法。
我是android studio的新手,我正在尝试实现一个对话框片段,以便在单击按钮或单击工具栏操作添加按钮时弹出。它将数据从对话框发送到一个片段或一个活动(试图了解它是如何为这两个对象工作的)。我的dialog类有一个接口,当我在片段中实现它时,它工作得非常好,但是活动有点不同。我使用接口将数据传递给活动,然后使用Bundle将数据从活动传输到片段。我相信错误发生在onAttach中,因为我已经
我是初学者在android。我正在创建一个自定义对话框,它工作正常。但是这个对话框不移动。如何移动这个自定义对话框。例如在窗口中包含记事本,油漆等。当你点击这个(记事本,油漆等)标题栏你可以移动的位置。如果可能请发送信息如何移动对话框。否则如果不可能发送原因。请回复你的答案和意见是有价值的我。谢谢。
本文向大家介绍Androd自定义对话框Dialog视图及参数传递的实现方法,包括了Androd自定义对话框Dialog视图及参数传递的实现方法的使用技巧和注意事项,需要的朋友参考一下 今天给大家讲讲有关自定义对话框的相关内容,前面两篇都在在利用系统提供的函数来实现对话框,但局限性太大,当我们想自己定义视图的时候,就不能利用系统函数了,就需要我们这里的自定义对话框了,有关自定义对话框的东东,以前有写
我是Android新手,正在开发自定义警报对话框 我想打开另一个对话框,点击编辑按钮,代码如下 但我得到了一个异常,我的日志cat输出如下 就连我的红色十字按钮也可以正常工作,我已经多次使用相同的代码用TextView显示AlertDialog,但我不知道代码出了什么问题。非常感谢您的帮助。提前谢谢。 现在我得到了我想要的,但是编辑和保存都有重叠。我想隐藏编辑(蓝色按钮)并使保存按钮清晰可见。
我有一个带有的自定义对话框。在我的上,我有一个按钮,当我按下它时,对话框就会显示出来,我可以从中选择日期。我希望选定的日期显示在我的中的上。我的代码如下: 这是我的主上包含的对话框的代码: 我从中获取日、月和年,并使用 在我的片段中,我使用下面的代码调用我的对话框: 当我运行我的应用程序时,我在以下行中得到一个nullPointerException: 我做错了什么?提前致谢
如何在Android警报对话框中显示列表视图?我试过了。