I'm trying to update a TextView and ProfilePictureView in a Fragment.
The activity should send the userId, and profileId to the fragment to update the textView and profilePictureView. It currently runs but doesn't update the textView and profilePictureView.
What I'm doing wrong?
FirstFragment.java:
public class FirstFragment extends Fragment implements UserFragmentDetails { private ProfilePictureView profilePictureView; private TextView textView; private UserFragmentDetails userFragmentDetails; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // return super.onCreateView(inflater, container, savedInstanceState); View rootView = inflater.inflate(R.layout.first_fragment, container, false); textView = (TextView)rootView.findViewById(R.id.textName); profilePictureView = (ProfilePictureView)rootView.findViewById(R.id.profilePic); return rootView; } @Override public void onAttach(Context context) { super.onAttach(context); try{ userFragmentDetails = (UserFragmentDetails)context; } catch(ClassCastException ex) { throw new ClassCastException(ex.toString()); } } @Override public void setDetails(String userId, String name) { textView.setText(name); profilePictureView.setProfileId(userId); } } secondActivity.java:
public class secondActivity extends AppCompatActivity implements UserFragmentDetails { private Intent intent; private Toolbar toolbar; private String firstName, profileId; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); intent = getIntent(); firstName = intent.getStringExtra("firstName"); profileId = intent.getStringExtra("Id"); toolbar = (Toolbar)findViewById(R.id.toolBar); setSupportActionBar(toolbar); toolbar.setLogo(R.drawable.ic_menu_image); getSupportActionBar().setDisplayShowHomeEnabled(true); getSupportActionBar().setDisplayShowTitleEnabled(false); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_second, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. switch(item.getItemId()) { case android.R.id.home: Intent homeIntent = new Intent(this, secondActivity.class ); homeIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(homeIntent); } int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } @Override public void setDetails(String userId, String name) { FirstFragment firstFragment = (FirstFragment)getSupportFragmentManager().findFragmentById(R.id.fragment1); if(firstFragment !=null) { firstFragment.setDetails(profileId, firstName); } else { Bundle bundle = new Bundle(); bundle.putString("firstName", firstName); bundle.putString("profileId", profileId); FirstFragment firstFragment1 = new FirstFragment(); firstFragment1.setArguments(bundle); FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); fragmentTransaction.replace(R.id.fragment1, firstFragment1); fragmentTransaction.commit(); } } first_fragment.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/fragmentPic"> <TextView android:id="@+id/textName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/users_FirstName" android:textSize="@dimen/font_size" android:layout_gravity="center_horizontal"/> <com.facebook.login.widget.ProfilePictureView android:id="@+id/profilePic" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" > </com.facebook.login.widget.ProfilePictureView> </LinearLayout> activity_second.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@color/backgroundColor" > <include android:id="@+id/toolBar" layout="@layout/toolbar" /> <android.support.v4.widget.DrawerLayout android:layout_width="match_parent" android:layout_height="match_parent"> <fragment android:layout_width="match_parent" android:layout_height="match_parent" tools:layout="@layout/first_fragment" class="edu.sjsu.cmpe277.termproject.Fragments.FirstFragment" android:id="@+id/fragment1" /> </android.support.v4.widget.DrawerLayout> </LinearLayout>
No comments:
Post a Comment