2014-10-28 6 views
0

: 편집어떻게 개방 탐색 서랍 OnClickListener를를 사용하는 단편() 내가 활동을 열 방법의이 종류를 사용하여 내 탐색 창에서

mDrawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
        Fragment fragment = null; 
        @SuppressLint("ResourceAsColor") @Override 
        public void onItemClick(AdapterView<?> parent, View view, 
              int position, long id) { 
Fragment fragment = null; 
      FragmentManager fragmentManager = getFragmentManager(); 
      Bundle bundle = new Bundle(); 
         switch (position) { 

         case 0:  

          startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(str))); 

          break; 

         case 1:  

          fragment = new TrimFragment(); 
         fragment.setArguments(bundle); 
         fragmentManager.beginTransaction() 
         .replace(R.id.content_frame, fragment).commit(); 

          break; 

          startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(strg))); 

          break; 

         case 3:  

          startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(strtwit))); 

          break; 
         } 

        } 
       }); 
      } 

하지만 내가 원하는 것은 지금 조각 열려 있습니다. 이 구조에서 가능합니까? 감사합니다

+0

[http://developer.android.com/training/implementing-navigation/nav-drawer.html] (http://developer.android.com/training/implementing-navigation/nav-drawer.html) –

답변

0

추가/당신은, 스위치의 경우 적절한 경우

0

에 컨테이너에 표시이 코드를 사용하려는 조각을 교체합니다. 이 방법은 기존 단편을 탐색 서랍 목록에서 클릭 한 것과 교체하려는 경우에 사용됩니다.

// 당신은 활동 대신 조각을 표시 할 수 있습니다 교체 조각

Fragment fragment = null; 
      FragmentManager fragmentManager = getFragmentManager(); 
      Bundle bundle = new Bundle(); 
      switch (position) { 
      case 0: 

       fragment = new Dashboard_Fragment(); 
       break; 
      case 1: 

       fragment = new SearchCustomer_Fragment(); 
       //Request Origin 
       bundle.putString("origin", "searchCustomer"); 
       fragment.setArguments(bundle); 
fragmentManager.beginTransaction() 
      .replace(R.id.frame_container, fragment).commit(); 

       break; 
      case 2: 

       fragment = new STB_Check_Fragment(); 
fragmentManager.beginTransaction() 
      .replace(R.id.frame_container, fragment).commit(); 
       break; 


    } 
+0

음 ... 아무 일도 일어나지 않아. 어딘가에 커밋이 있습니까? –

+0

죄송합니다, 편집 된 답변을 참조하십시오. – Akhil

+0

mmh, 내 대답을 지금보십시오. 아직 작동하지 않습니다 : ( –

0

하여 주요 내용을 업데이트 :

이 조각을 참조하십시오.

mDrawerList.setOnItemClickListener(new DrawerItemClickListener()); //onclick listener 

/* The click listner for ListView in the navigation drawer */ 
private class DrawerItemClickListener implements ListView.OnItemClickListener { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     setCharacter(position); 
    } 
} 

//here a new fragment is created and replaces the old one. 
public void setCharacter(int position){ 
    Fragment fragment = new CharacterFragment(); 
    Bundle args = new Bundle(); 
    args.putInt(CharacterFragment.ARG_CHAR_NUMBER, position); 
    fragment.setArguments(args); 

    FragmentManager fragmentManager = getFragmentManager(); 
    fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit(); 

    // update selected item and title, then close the drawer 
    mDrawerList.setItemChecked(position, true); 
    setTitle(mCharacterTitles[position]); 
    mDrawerLayout.closeDrawer(mLinearLayout); 
} 

@Override 
public void setTitle(CharSequence title) { 
    // TODO Auto-generated method stub 
    mTitle = title; 
    getActionBar().setTitle(mTitle); 
} 

/** 
* Fragment that appears in the "content_frame", shows a planet 
*/ 
public static class CharacterFragment extends Fragment { 
    public static final String ARG_CHAR_NUMBER = "character_number"; 

    public CharacterFragment() { 
     // Empty constructor required for fragment subclasses 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragment_character, container, false); 
     int i = getArguments().getInt(ARG_CHAR_NUMBER); 
     String charName = getResources().getStringArray(R.array.characters_array)[i]; 

     TextView charTextView = (TextView) rootView.findViewById(R.id.text); 
     charTextView.setText(charName); 
     getActivity().setTitle(charName); 
     return rootView; 
    } 
} 

희망이 도움이됩니다.