2012-11-02 24 views
5

Tôi đang sử dụng Gói tương thích, bản sửa đổi 4 để thêm Phân đoạn vào ứng dụng Gingerbread của tôi. Không có lỗi nào được ghi lại tuy nhiên Fragment không hiển thị trên màn hình nữa (nó đã làm cùng một lúc trước khi tôi bắt đầu dọn dẹp nó và thêm các phương thức!). Phần dưới cùng mong muốn đóng gói các phương thức điều hướng của tôi như "goHome" và "goCart" và được đặt trên tất cả các màn hình.
Tôi đã thử thêm phần tử vào bố cục của mình và nhận được lỗi Classnotfound đáng sợ cho android.view. Tôi đã nhận được nhiều hơn nữa bằng cách sử dụng phương pháp này.Làm cách nào để thêm Phân đoạn Android vào FragmentActivity của tôi?

Nhật ký của tôi hiển thị Phân đoạn được thêm vào. Đây là Fragment:

public class BottomFragment extends Fragment { 

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 


    View v = inflater.inflate(R.layout.bottom_nav, container, false); 
    Log.v("BottomFragment","onCreate after inflate"); 
    /* 
    ImageView find_img = (ImageView)v.findViewById(R.id.bottom_find_image); 

    find_img.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Log.v("BottomFragment.OnClickListener"," with Find clicked"); 
      findRegistry(); 
     } 
    }); 
    */ 
    // Inflate the layout for this fragment 
    return v; 

Thông báo tường trình hiển thị ở trên. Đây là Hoạt động thêm Phân đoạn:

public class StartActivity extends FragmentActivity { 

public static Context appContext; 

@Override 
public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 

    setContentView(R.layout.find_main); 

    appContext = getApplicationContext(); 

    // Create new fragment and transaction 
    BottomFragment newFragment = new BottomFragment(); 

    FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 
    transaction.add(R.id.frame_bottom_frag, newFragment); 
    // Commit the transaction 
    transaction.commit(); 
} 

Đây là tệp bottom_nav.xml được Phân đoạn sử dụng.

<RelativeLayout 
    android:id="@+id/bottom_nav" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

<LinearLayout 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 

    <ImageView 
      android:layout_height="wrap_content" 
      android:layout_width="60dp" 
      android:id="@+id/bottom_home_image" 
      android:src="@drawable/home" 
      android:clickable="true" 
      android:onClick="goHome" 
      /> 

    <ImageView 
      android:layout_height="wrap_content" 
      android:layout_width="60dp" 
      android:id="@+id/bottom_shopping_cart_image" 
      android:src="@drawable/shopping_cart" 
      android:clickable="true" 
      android:onClick="goCart" 
      /> 
</LinearLayout> 
</RelativeLayout> 

đây là find_main bố trí Hoạt động:

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

<TableRow android:padding="20dip"> 

    <ImageView 
      android:layout_height="60dip" 
      android:layout_width="60dip" 
      android:id="@+id/home_image" 
      android:src="@drawable/create" 

      android:clickable="true" 
      android:onClick="goHome" 
      /> 

     <TextView 
       android:id="@+id/home_text" 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:text="@string/home" android:textAppearance="?android:attr/textAppearanceLarge" 
       android:textStyle="bold" 
       android:layout_toRightOf="@id/home_image" 

       android:clickable="true" 
       android:onClick="goCart"/> 
</TableRow> 
</TableLayout> 
<FrameLayout android:name="com.marcole.gingerbread.grw.BottomFragment" 
      android:id="@+id/frame_bottom_frag" 
      android:layout_weight="2" 
      android:layout_width="0dp" 
      android:layout_height="match_parent"> 
</FrameLayout> 
</LinearLayout> 

Heres một số bản ghi:

11-02 16:20:57.650: INFO/ActivityManager(61): Start proc com.marcole.gingerbread.grw for  activity com.marcole.gingerbread.grw/.StartActivity: pid=522 uid=10041 gids={3003} 
11-02 16:20:57.690: INFO/dalvikvm(513): JNI: AttachCurrentThread (from ???.???) 
11-02 16:20:57.690: INFO/AndroidRuntime(513): NOTE: attach of thread 'Binder Thread #3' failed 
11-02 16:20:58.090: WARN/ActivityThread(522): Application com.marcole.gingerbread.grw is waiting for the debugger on port 8100... 
11-02 16:20:58.100: INFO/System.out(522): Sending WAIT chunk 
11-02 16:20:58.110: INFO/dalvikvm(522): Debugger is active 
11-02 16:20:58.310: INFO/System.out(522): Debugger has connected 
11-02 16:20:58.310: INFO/System.out(522): waiting for debugger to settle... 
11-02 16:20:58.510: INFO/System.out(522): waiting for debugger to settle... 
11-02 16:20:58.721: INFO/System.out(522): waiting for debugger to settle... 
11-02 16:20:58.920: INFO/System.out(522): waiting for debugger to settle... 
11-02 16:20:59.121: INFO/System.out(522): waiting for debugger to settle... 
11-02 16:20:59.322: INFO/System.out(522): waiting for debugger to settle... 
11-02 16:20:59.522: INFO/System.out(522): waiting for debugger to settle... 
11-02 16:20:59.721: INFO/System.out(522): debugger has settled (1408) 
11-02 16:21:00.771: DEBUG/dalvikvm(522): GC_EXTERNAL_ALLOC freed 59K, 49% free 2757K/5379K, external 2121K/2137K, paused 62ms 
11-02 16:21:00.851: VERBOSE/BottomFragment(522): onCreate after inflate 
11-02 16:21:01.521: INFO/ActivityManager(61): Displayed com.marcole.gingerbread.grw/.StartActivity: +3s935ms 

Bất kỳ trợ giúp sẽ được đánh giá cao nhờ!

Trả lời

0

Tôi đã tìm thấy sự cố. Tôi cần phải chuyển FrameLayout sang bên trong TableLayout. Từ:

</TableLayout> 
    <FrameLayout android:name="com.marcole.gingerbread.grw.BottomFragment" 
     android:id="@+id/frame_bottom_frag" 
     android:layout_weight="2" 
     android:layout_width="0dp" 
     android:layout_height="match_parent"> 
    </FrameLayout> 
</LinearLayout> 

Để:

</TableRow> 
    <FrameLayout android:name="com.marcole.gingerbread.grw.BottomFragment" 
       android:id="@+id/frame_bottom_frag" 

       android:layout_width="wrap_content" 
       android:gravity="bottom" 
       android:layout_centerHorizontal="true" 
       android:layout_height="wrap_content"> 
    </FrameLayout> 
</TableLayout> 
</LinearLayout> 

Bây giờ nếu tôi có thể lấy nó để đi tất cả các cách để phía dưới!

Các vấn đề liên quan