2013-09-22 53 views
1

我開始構建一個簡單的Android應用程序,所以當我按下錄像鍵調用其中包含了視頻播放的片段,但我總是得到:未找到ID 0x7f090005視圖。 ..沒有查看發現ID 0x7f090005

我不知道如果你給我一個手來搞清楚什麼是錯在我寫的代碼。

這裏是我的MainActivity.java文件:

 
public class MainActivity extends Activity { 

    private Button mVideoButton; 
    Fragment fragment; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main_activity); 

     mVideoButton = (Button)findViewById(R.id.videoButton); 

     // Video Button 
     mVideoButton.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 

       FragmentManager fm = getFragmentManager(); 
       FragmentTransaction ft = fm.beginTransaction(); 
       FragmentVideo sf = new FragmentVideo(); 

       ft.add(R.id.fragmentVideo, sf); 
       ft.commit(); 
      } 
     }); 
    } 
} 

然後,我有我的main_activity.xml:

<?xml version="1.0" encoding="utf-8"?> 

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/activityStart" > 

    <ImageView 
     android:src="@drawable/armstrong_on_moon" 
     android:contentDescription="@string/description" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:scaleType="centerInside" 
     android:layout_weight="1" /> 

    <TableRow 
     android:gravity="center|bottom" 
     android:layout_weight="0"> 

     <Button 
      android:id="@+id/videoButton" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/video" /> 

    </TableRow> 

接下來,我FragmentVideo.java類:

public class FragmentVideo extends Fragment{ 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState){ 
     View v = inflater.inflate(R.layout.fragment_video, parent, false); 

     return v; 
    } 
} 

而且最後,fragment_video.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:id="@+id/fragmentVideo" > 

     <VideoView 
      android:id="@+id/video" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_gravity="center" /> 

     <ProgressBar 
      android:id="@+id/prog" 
      android:layout_width="70dp" 
      android:layout_height="70dp" 
      android:layout_gravity="center" /> 

</LinearLayout> 

請讓我知道如果我做錯了什麼,或者如果我失去了一些東西,因爲我能看到的問題奠定。

非常感謝提前任何幫助。

EGMWEB

+0

請張貼堆棧跟蹤 – Emmanuel

回答

3

ft.add()整型參數指的是容器要添加Fragment;您正嘗試將Fragment添加到Fragment的自己的佈局中(Android沒有找到View,因爲它尚未充氣,如果它在此情況下會拋出並且Exception;您不能將Fragment添加到其自己的佈局)。你想與R.id.activityStart更換R.id.fragmentVideoFragment添加到當前TableLayout是本已膨脹的部分佈局main_activity

+0

靈光你好,非常感謝所有。它的工作,我現在完全理解。 – egmweb

+0

很高興提供幫助。快樂的編碼。 – Emmanuel

0

你能檢查什麼在R.java文件中的ID '0x7f090005' 相當於視圖。它應該在你的項目的gen文件夾下。該框架無法在您在此Java類中擁有的資源文件中找到它。