2016-04-02 10 views
0

Aşağıdaki kod, Android Developers'ın kılavuzundan aşağıdaki URL'ye kamera oluşturmaktır. Lütfen bunu çözmeme yardımcı olmak için biraz zaman ayırın. En iyi dileklerimle! The aforementioned siteAndroid Studio Projemde aşağıdaki OnClick kodunu nasıl uygularım?

hataları görünmektedir:

  1. Beni elle id önce R ekleyerek ...
  2. setOnclickListener, setCaptureButtonText, Görünüm v @Override ve mMediaRecorder hataları olarak gösteriliyor.
  3. Sonunda, bir hata olarak da vurgulanır.

Bu başvuruluyor düğmesini gösterir activity.xml dosyasından kodudur:

<Button 
    android:id="@+id/button_capture" 
    android:text="Capture" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    /> 

Ve aşağıdaki kod kendisi:

private boolean isRecording = false; 

    // Add a listener to the Capture button 
    Button captureButton = (Button) findViewById(id.button_capture); 
    captureButton.setOnClickListener(
    new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     if (isRecording) { 
      // stop recording and release camera 
      mMediaRecorder.stop(); // stop the recording 
      releaseMediaRecorder(); // release the MediaRecorder object 
      mCamera.lock();   // take camera access back from MediaRecorder 

      // inform the user that recording has stopped 
      setCaptureButtonText("Capture"); 
      isRecording = false; 
     } else { 
      // initialize video camera 
      if (prepareVideoRecorder()) { 
       // Camera is available and unlocked, MediaRecorder is prepared, 
       // now you can start recording 
       mMediaRecorder.start(); 

       // inform the user that recording has started 
       setCaptureButtonText("Stop"); 
       isRecording = true; 
      } else { 
       // prepare didn't work, release the camera 
       releaseMediaRecorder(); 
       // inform user 
      } 
     } 
    } 
    } 
    ); 
+0

bu eğiticide eksiksiz bir kod sağlamadılar ve tüm bu yöntemler burada sağlanmadı –

cevap

0

XML kullanıyorsanız olduğundan, gerçekten sadece özelliği doğrudan nesneye eklemelisiniz. Çalıştırmaya çalıştığınız her işlev kaçar. Başka dinleyici eklemenize gerek yok.

<Button 
    android:id="@+id/button_capture" 
    android:text="Capture" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:onClick="yourFunction" 
    /> 
+0

Bu yöntemde yeniyim. İşlevlerin eklenmesi doğrudan tam olarak nasıl çalışır? – thanksagain123

+0

Şu anda "onClick" denilen bir işlevi çağırmaya çalışıyorsunuz. Bunu bir dinleyiciye yerleştirerek yapıyorsun. Sadece gereksiz olduğunu söylüyorum. Çalışmak istediğiniz işlev (void) ne olursa olsun, sadece düğmenin XML tanımından doğrudan arayın. Sonra bir dinleyici oluşturmaya gerek yoktur. – durbnpoisn

+0

@ thanksagain123 Bu yolu kullanırsanız işlev tanımı sınırlıdır. Bu durumda 'YourFunction'' public' olmalı ve 'public vid yourFunction (View v)' gibi bir 'View v' parametresi almalıdır. Ve bu şekilde Fragment içinde kullanamazsınız, çünkü xml 'android: onClick' sadece kendi ebeveyni veya atası bağlamını arar. – sakiM