2016-04-02 12 views
0

次のコードは、Android Developers 'のガイドから、次のURLにカメラを作成するためのコードです。私はこれを解決するために、少し時間をかけてください。ご多幸を祈る! The aforementioned siteAndroid Studioプロジェクトで次のOnClickコードを実装するにはどうすればよいですか?

誤りがあるように見える:

  1. 私は手動でIDの前にRを追加...
  2. はsetOnclickListener、setCaptureButtonTextは、ビューVは、@OverrideとmMediaRecorderはエラーとして示されています。
  3. )最後にエラーとして強調表示されています。

これは、参照されているボタンを示しactivity.xmlファイルからコードです:あなたはXMLを使用しているので、あなた

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

これらのチュートリアルでは完全なコードが提供されていないため、これらのメソッドはすべて提供されていません。 –

答えて

0

:以下

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

とコード自体実際にオブジェクトに直接プロパティを追加するだけです。実行するように指示する機能が実行されます。他のリスナーを追加する必要はありません。

<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

このメソッドは初めてです。どのように機能を直接追加するのでしょうか? – thanksagain123

+0

"onClick"と呼ばれる関数を今すぐ呼び出そうとしています。これは、リスナー内でラップすることで行います。私はそれが不必要だと言っているだけです。実行する関数(void)が何であれ、ボタンのXML定義から直接呼び出すだけです。その後、リスナーを作成する必要はありません。 – durbnpoisn

+0

@ thanksagain123このように使用すると、関数の定義が制限されます。この場合、 'yourFunction'は' public'で、 'public void yourFunction(View v)'のような 'View v'パラメータを受け取ります。そして、この方法では、XMLの 'android:onClick'が親または祖先コンテキストだけを検索するため、フラグメントでは使用できません。 – sakiM

関連する問題