Created
September 2, 2016 19:08
-
-
Save iamOgunyinka/48c0d2f4787d8c40dcdcc028dae7c562 to your computer and use it in GitHub Desktop.
Menu not showing up in Fragment
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
android:layout_width="match_parent" | |
android:layout_height="match_parent" | |
xmlns:app="http://schemas.android.com/apk/res-auto" | |
android:fitsSystemWindows="true"> | |
<android.support.design.widget.AppBarLayout | |
android:layout_width="match_parent" | |
android:layout_height="wrap_content" | |
android:theme="@style/AppTheme.AppBarOverlay"> | |
<android.support.v7.widget.Toolbar | |
android:id="@+id/toolbar" | |
android:layout_width="match_parent" | |
android:layout_height="?attr/actionBarSize" | |
android:background="?attr/colorPrimary" | |
app:popupTheme="@style/AppTheme.PopupOverlay" /> | |
</android.support.design.widget.AppBarLayout> | |
<include layout="@layout/content_crime" /> | |
</android.support.design.widget.CoordinatorLayout> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.froist_inc.josh.criminalintent; | |
import android.annotation.TargetApi; | |
import android.app.Activity; | |
import android.content.Intent; | |
import android.os.Build; | |
import android.os.Bundle; | |
import android.support.annotation.Nullable; | |
import android.support.v4.app.DialogFragment; | |
import android.support.v4.app.Fragment; | |
import android.support.v4.app.FragmentManager; | |
import android.support.v4.app.NavUtils; | |
import android.text.Editable; | |
import android.text.TextWatcher; | |
import android.view.LayoutInflater; | |
import android.view.Menu; | |
import android.view.MenuInflater; | |
import android.view.MenuItem; | |
import android.view.View; | |
import android.view.ViewGroup; | |
import android.widget.Button; | |
import android.widget.CheckBox; | |
import android.widget.CompoundButton; | |
import android.widget.EditText; | |
import java.util.Date; | |
import java.util.UUID; | |
public class CrimeFragment extends Fragment { | |
private Crime mCrime; | |
public static final String EXTRA_ID = | |
"com.froist_inc.josh.criminalintent.crime_list_fragment.EXTRA_ID"; | |
public static final int REQUEST_CODE = 0; | |
private Button mDateButton; | |
@Override | |
public void onCreate( Bundle savedInstanceState ) | |
{ | |
super.onCreate( savedInstanceState ); | |
UUID position = ( UUID ) getArguments().getSerializable( EXTRA_ID ); | |
mCrime = CrimeLab.get( getActivity() ).getCrime( position ); | |
} | |
@Override | |
public void onCreateOptionsMenu( Menu menu, MenuInflater inflater ) | |
{ | |
inflater.inflate( R.menu.menu_list, menu ); | |
super.onCreateOptionsMenu( menu, inflater ); | |
} | |
@Override | |
public boolean onOptionsItemSelected( MenuItem item ) | |
{ | |
switch ( item.getItemId() ) | |
{ | |
case android.R.id.home: | |
if( NavUtils.getParentActivityName( getActivity() ) != null ){ | |
NavUtils.navigateUpFromSameTask( getActivity() ); | |
} | |
return true; | |
default: | |
return super.onOptionsItemSelected( item ); | |
} | |
} | |
@TargetApi( 11 ) | |
@Nullable | |
@Override | |
public View onCreateView( LayoutInflater inflater, @Nullable ViewGroup container, | |
@Nullable Bundle savedInstanceState ) | |
{ | |
final View view = inflater.inflate( R.layout.fragment_crime, container, false ); | |
setHasOptionsMenu( true ); | |
if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ) { | |
if ( NavUtils.getParentActivityName( getActivity() ) != null ) { | |
getActivity().getActionBar().setDisplayHomeAsUpEnabled( true ); | |
} | |
} | |
EditText titleView = ( EditText ) view.findViewById( R.id.crime_title ); | |
titleView.setText( mCrime.getTitle() ); | |
titleView.addTextChangedListener( new TextWatcher() { | |
@Override | |
public void beforeTextChanged( CharSequence s, int start, int count, int after ) | |
{ | |
} | |
@Override | |
public void onTextChanged( CharSequence s, int start, int before, int count ) | |
{ | |
mCrime.setTitle( s.toString() ); | |
} | |
@Override | |
public void afterTextChanged( Editable s ) | |
{ | |
} | |
}); | |
mDateButton = ( Button ) view.findViewById( R.id.crime_date ); | |
mDateButton.setText( mCrime.getDate().toString() ); | |
mDateButton.setOnClickListener( new View.OnClickListener() { | |
@Override | |
public void onClick( View v ) | |
{ | |
FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); | |
DialogFragment dialog = DatePickerDialog.newInstance( mCrime.getDate() ); | |
dialog.setTargetFragment( CrimeFragment.this, CrimeFragment.REQUEST_CODE ); | |
dialog.show( fragmentManager, "dialog_date" ); | |
} | |
}); | |
CheckBox solvedCheckBox = ( CheckBox ) view.findViewById( R.id.crime_solved ); | |
solvedCheckBox.setChecked( mCrime.isSolved() ); | |
solvedCheckBox.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() { | |
@Override | |
public void onCheckedChanged( CompoundButton buttonView, boolean isChecked ) { | |
mCrime.setSolved( isChecked ); | |
} | |
}); | |
return view; | |
} | |
@Override | |
public void onActivityResult( int requestCode, int resultCode, Intent data ) | |
{ | |
if( resultCode != Activity.RESULT_OK ) return; | |
if( requestCode == REQUEST_CODE ) | |
{ | |
Date date = ( Date ) data.getSerializableExtra( DatePickerDialog.EXTRA_DATE ); | |
mCrime.setDate( date ); | |
mDateButton.setText( mCrime.getDate().toString() ); | |
} | |
} | |
public static CrimeFragment newInstance( UUID id ) | |
{ | |
Bundle extra = new Bundle(); | |
extra.putSerializable( EXTRA_ID, id ); | |
CrimeFragment newCrimeFragment = new CrimeFragment(); | |
newCrimeFragment.setArguments( extra ); | |
return newCrimeFragment; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.froist_inc.josh.criminalintent; | |
import android.os.Bundle; | |
import android.support.annotation.Nullable; | |
import android.support.v4.app.Fragment; | |
import android.support.v4.app.FragmentActivity; | |
import android.support.v4.app.FragmentManager; | |
import android.support.v4.app.FragmentStatePagerAdapter; | |
import android.support.v4.view.ViewPager; | |
import java.util.ArrayList; | |
import java.util.UUID; | |
public class ViewPagerActivity extends FragmentActivity | |
{ | |
private ArrayList<Crime> mCrimes; | |
@Override | |
protected void onCreate( @Nullable Bundle savedInstanceState ) | |
{ | |
super.onCreate( savedInstanceState ); | |
ViewPager viewPager = new ViewPager( this ); | |
viewPager.setId( R.id.viewPage ); | |
setContentView( viewPager ); | |
mCrimes = CrimeLab.get( this ).getCrimes(); | |
FragmentManager fm = getSupportFragmentManager(); | |
viewPager.setAdapter( new FragmentStatePagerAdapter( fm ) { | |
@Override | |
public Fragment getItem( int position ) { | |
return CrimeFragment.newInstance( mCrimes.get( position ).getId() ); | |
} | |
@Override | |
public int getCount() { | |
return mCrimes.size(); | |
} | |
}); | |
viewPager.addOnPageChangeListener( new ViewPager.OnPageChangeListener(){ | |
@Override | |
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) | |
{ | |
} | |
@Override | |
public void onPageSelected(int position) { | |
setTitle( mCrimes.get( position ).getTitle() ); | |
} | |
@Override | |
public void onPageScrollStateChanged(int state) { | |
} | |
}); | |
UUID uid = ( UUID ) getIntent().getSerializableExtra( CrimeFragment.EXTRA_ID ); | |
for ( int i = 0; i < mCrimes.size(); i++ ) { | |
if( mCrimes.get( i ).getId().equals( uid ) ){ | |
viewPager.setCurrentItem( i ); | |
break; | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment