按钮在一个活动中与另一个活动中的按钮做相同

问题描述:

我是Android的新手。在我的应用程序中,在ActivityOne中,我希望允许用户使用按钮拍摄照片。然后将图片存储在图库中并显示在ActivityTwo中的ImageView中。 我的问题是:如何在ActivityTwo中添加一个按钮,让用户在ImageView中显示时不喜欢它的情况下重新拍摄照片。基本上,该按钮的作用与ActivityTwo中的按钮相同。我是否需要为按钮编写相同的代码? 我试图创建一个单独实现View.OnClickListener,在onclick方法中添加功能性,并且在每个活动创建附接至按钮类的一个实例:按钮在一个活动中与另一个活动中的按钮做相同

onClick(View v) { 
int id = v.getId(); 
if (id == R.id.myButton) { 
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
myfile = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); 
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); 
v.startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE); 
    } 
} 

然而,这导致错误,因为该班不是一项活动。 任何帮助表示赞赏。

+0

为什么你会低调而不是指导?我是Android新手! – Bran

+0

顺便说一下,我不是下来的选民。在单一活动中处理这种逻辑如何?什么阻止你呢? – Naveen

+0

基本上是的,你应该在ActivityTwo中重复登录,但你为什么要这样做?我只使用第一个活动 – ddb

您可以为此第二个按钮编写相同的逻辑,但是正如Naveen提到的,将按钮放在第一个活动上会导致相机更容易。当用户拍摄一张照片时,只需在第一个活动的linearlayout上使用imageview将按钮添加到按钮上方的布局。然后显示照片,用户可以选择重新拍照。

+0

我需要两个活动,因为我希望第一个活动只用于一个按钮。第二项活动将做其他事情。 – Bran

+0

然后,你必须使用第二个活动的按钮相同的逻辑 –

最好的选择是让用户在需要的地方拍摄照片。但是如果您需要在多个地方使用它,则应该将第一个活动中的按钮(拍摄照片的代码)触发的代码提取到单独的类中。那么你可以在任何需要的地方打电话给它。

+0

谢谢。但是这个单独的课程,是不是又一个活动?因为我将使用startActivityForResult()和其他方法... – Bran

+0

只是一个普通的Java类将做 –

+0

当我尝试在常规类中使用startActivityForResult()时,它给我一个错误无法解析方法。 – Bran

@ Subzero-273k跟着这个。

  1. 在您的活动中制作两种不同的布局。其中一个显示您的第一个按钮,请记住通过设置可见性来隐藏其他布局。
  2. 一旦用户点击调用某个OnClick()的button1,隐藏第一个布局并启用另一个布局,它向您显示imageView和button2,onclick button2仍然调用您的旧函数someOnClick()。

这个怎么样?正如你提到你在两个不同的活动中还做了什么,我假设你只显示一个单一按钮的活动。

+0

ActivityTwo更复杂:它会有几个TextViews,ImageViews,按钮等。我想知道是否让可见/不可见是一个好习惯? – Bran

+0

我给出了这个解决方案,因为您的第一个活动布局只包含一个按钮。 – Naveen

+0

这是正确的,它只包含一个按钮。但我希望基于服务器的条件在Activity2中出现相同的按钮。图片将显示在ImageView中并发送到服务器。如果图片不符合要求,服务器将发送一条消息,该按钮将出现在ImageView下。 – Bran