2016-07-27 53 views
0

我是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

回答

0

您可以爲此第二個按鈕編寫相同的邏輯,但是正如Naveen提到的,將按鈕放在第一個活動上會導致相機更容易。當用戶拍攝一張照片時,只需在第一個活動的linearlayout上使用imageview將按鈕添加到按鈕上方的佈局。然後顯示照片,用戶可以選擇重新拍照。

+0

我需要兩個活動,因爲我希望第一個活動只用於一個按鈕。第二項活動將做其他事情。 – Bran

+0

然後,你必須使用第二個活動的按鈕相同的邏輯 –

0

最好的選擇是讓用戶在需要的地方拍攝照片。但是如果您需要在多個地方使用它,則應該將第一個活動中的按鈕(拍攝照片的代碼)觸發的代碼提取到單獨的類中。那麼你可以在任何需要的地方打電話給它。

+0

謝謝。但是這個單獨的課程,是不是又一個活動?因爲我將使用startActivityForResult()和其他方法... – Bran

+0

只是一個普通的Java類將做 –

+0

當我嘗試在常規類中使用startActivityForResult()時,它給我一個錯誤無法解析方法。 – Bran

0

@ Subzero-273k跟着這個。

  1. 在您的活動中製作兩種不同的佈局。其中一個顯示您的第一個按鈕,請記住通過設置可見性來隱藏其他佈局。
  2. 一旦用戶點擊調用某個OnClick()的button1,隱藏第一個佈局並啓用另一個佈局,它向您顯示imageView和button2,onclick button2仍然調用您的舊函數someOnClick()。

這個怎麼樣?正如你提到你在兩個不同的活動中還做了什麼,我假設你只顯示一個單一按鈕的活動。

+0

ActivityTwo更復雜:它會有幾個TextViews,ImageViews,按鈕等。我想知道是否讓可見/不可見是一個好習慣? – Bran

+0

我給出了這個解決方案,因爲您的第一個活動佈局只包含一個按鈕。 – Naveen

+0

這是正確的,它只包含一個按鈕。但我希望基於服務器的條件在Activity2中出現相同的按鈕。圖片將顯示在ImageView中併發送到服務器。如果圖片不符合要求,服務器將發送一條消息,該按鈕將出現在ImageView下。 – Bran

相關問題