Android 未加载onClick的片段
我有两个片段和一个主要活动。第一个片段ContactListFragment是联系人列表,第二个片段ContactFragment收集联系人信息,然后将该信息发送回MainActivity以再次发送到ContactListFragment。单击ContactFragment中的“添加联系人”按钮时,应再次加载第一个片段,并显示更新的联系人列表。onClick正在工作,我有一条Toast消息显示,我的mCallback中有信息,但是当我单击“添加联系人”时,我的第一个片段不会再次加载。我对片段是新手,但从我看到的所有代码来看,我认为我已经正确地连接了它。所以你不必去挖掘它,这是我onClick中的相关代码Android 未加载onClick的片段,android,android-fragments,android-fragmentactivity,Android,Android Fragments,Android Fragmentactivity,我有两个片段和一个主要活动。第一个片段ContactListFragment是联系人列表,第二个片段ContactFragment收集联系人信息,然后将该信息发送回MainActivity以再次发送到ContactListFragment。单击ContactFragment中的“添加联系人”按钮时,应再次加载第一个片段,并显示更新的联系人列表。onClick正在工作,我有一条Toast消息显示,我的mCallback中有信息,但是当我单击“添加联系人”时,我的第一个片段不会再次加载。我对片段是新
OnSubmitListener mCallback = new OnSubmitListener() {
@Override
public void onSubmitClickedContacts(Contacts contact, int position, String updateVariable) {
}
};
//Container activity must implement this interface so that the fragment can deliver information
public interface OnSubmitListener {
public void onSubmitClickedContacts(Contacts contact, int position, String updateVariable);
}
public void onAttach(MainActivity activity) {
super.onAttach(activity);
// This makes sure that the container activity has implemented
// the callback interface. If not, it throws an exception.
try {
mCallback = (OnSubmitListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " must implement OnSubmitListener");
}
}
mAddContact = (Button) view.findViewById(R.id.btnAddContactToArray);
mAddContact.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
...
mCallback.onSubmitClickedContacts(contact, position, updateVariable);
Toast.makeText(getContext(),"I got clicked",Toast.LENGTH_SHORT).show();
}
这是我的主要活动中的代码。据我所知,一切看起来都不错。但我的日志消息从未运行过,当我单击“添加联系人”按钮时,什么也没有发生
@Override
public void onSubmitClickedContacts(Contacts contact, int position, String updateVariable) {
Log.d("TAG", "I got data");
ContactListFragment firstFragment = new ContactListFragment();
//ContactListFragment firstFragment = (ContactListFragment) getSupportFragmentManager()
// .findFragmentById(R.id.fragmentContainer);
Bundle args = new Bundle();
args.putSerializable(CONTACT_OBJECT, contact);
args.putInt(UPDATE_POSITION_INDEX, position);
args.putString(UPDATE_VARIABLE_INDEX, updateVariable);
firstFragment.setArguments(args);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragmentContainer, firstFragment);
transaction.addToBackStack(null);
transaction.commit();
}
如蒙协助,将不胜感激。完整代码如下
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
android:id="@+id/fragmentContainer"
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.support.v7.widget.Toolbar
android:id="@+id/activityToolbar1"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:elevation="4dp"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
</FrameLayout>
ContactFragment:
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.AppCompatActivity;
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.EditText;
import android.widget.Toast;
import android.support.v7.widget.Toolbar;
/**
* Created by Spheven on 11/25/2015.
*/
public class ContactFragment extends Fragment implements AppStatics {
private EditText mFirst;
private EditText mLast;
private EditText mEmailAddress;
private EditText mPhone;
private Button mAddContact;
private String sFirstName;
private String sLastName;
private String sEmail;
private String sPhone;
private Contacts contact;
ActionBar actionBar;
String updateVariable = "add";
int position;
OnSubmitListener mCallback = new OnSubmitListener() {
@Override
public void onSubmitClickedContacts(Contacts contact, int position, String updateVariable) {
}
};
//Container activity must implement this interface so that the fragment can deliver information
public interface OnSubmitListener {
public void onSubmitClickedContacts(Contacts contact, int position, String updateVariable);
}
public void onAttach(MainActivity activity) {
super.onAttach(activity);
// This makes sure that the container activity has implemented
// the callback interface. If not, it throws an exception.
try {
mCallback = (OnSubmitListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " must implement OnSubmitListener");
}
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
actionBar = ((AppCompatActivity)getActivity()).getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//return super.onCreateView(inflater, container, savedInstanceState);
View view = inflater.inflate(R.layout.fragment_contact, container, false);
Bundle args = getArguments();
if (args != null) {
contact = (Contacts) args.getSerializable(CONTACT_OBJECT);
position = args.getInt(UPDATE_POSITION_INDEX, 0);
mFirst.setText(contact.getmFirstName());
mLast.setText(contact.getmLastName());
mEmailAddress.setText(contact.getmEmail());
mPhone.setText(contact.getmPhoneNumber());
mAddContact.setText("Update");
updateVariable = "update";
}
//wiring up text widgets
mFirst = (EditText) view.findViewById(R.id.editFirstName);
mLast = (EditText) view.findViewById(R.id.editLastName);
mEmailAddress = (EditText) view.findViewById(R.id.editEmail);
mPhone = (EditText) view.findViewById(R.id.editPhone);
//wiring up add contact button. includes logic for required fields and sending contact back
//to main activity
mAddContact = (Button) view.findViewById(R.id.btnAddContactToArray);
mAddContact.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//check that required fields are filled in
if (mFirst.getText().toString().trim().equals("")) {
mFirst.setError("First name is required");
} else if (mLast.getText().toString().trim().equals("")) {
mLast.setError("Last name is required");
} else {
//create new Contacts object and add information to it
sFirstName = mFirst.getText().toString();
sLastName = mLast.getText().toString();
sEmail = mEmailAddress.getText().toString();
sPhone = mPhone.getText().toString();
Contacts contact = new Contacts(sFirstName, sLastName, sEmail, sPhone);
mCallback.onSubmitClickedContacts(contact, position, updateVariable);
Toast.makeText(getContext(),"I got clicked",Toast.LENGTH_SHORT).show();
}
}
});
return view;
}
public boolean onCreateOptionsMenu(Menu menu) {
//return super.onCreateOptionsMenu(menu);
MenuInflater inflater = getActivity().getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
@Override
public void onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
menu.findItem(R.id.action_add_contact).setVisible(false).setEnabled(false);
menu.findItem(R.id.action_help).setVisible(false).setEnabled(false);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case android.R.id.home:
getActivity().onBackPressed();
actionBar.setDisplayHomeAsUpEnabled(false);
default:
return super.onOptionsItemSelected(item);
}
}
}
public class ContactListFragment extends Fragment implements AppStatics, ContactFragment.OnSubmitListener {
private TextView mContactsAdded;
private ListView mListView;
ObjectArrayAdapter mAdapter;
ArrayList<Contacts> contactsArrayList = new ArrayList<>();
private Contacts contact;
private String updateVariable;
private int position;
OnSubmitListener mCallback = new OnSubmitListener() {
@Override
public void onSubmitClicked(Contacts contact, int position) {
}
};
//Container activity must implement this interface so that the fragment can deliver information
public interface OnSubmitListener {
public void onSubmitClicked(Contacts contact, int position);
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
// This makes sure that the container activity has implemented
// the callback interface. If not, it throws an exception.
try {
mCallback = (OnSubmitListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " must implement OnHeadlineSelectedListener");
}
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//return super.onCreateView(inflater, container, savedInstanceState);
View view = inflater.inflate(R.layout.fragment_contact_list,container,false);
//wiring up the contactsAdded
mContactsAdded = (TextView) view.findViewById(R.id.textContactsAdded);
mContactsAdded.setText("Contacts Added: " + contactsArrayList.size());
//wiring up the adapter
mAdapter = new ObjectArrayAdapter(getContext(), R.layout.contacts_list, contactsArrayList);
//wire up list view
mListView = (ListView) view.findViewById(android.R.id.list);
//display the list
mListView.setAdapter(mAdapter);
//display the "no items to display" message only if list view is empty
mListView.setEmptyView(view.findViewById(android.R.id.empty));
//set on click listener for listview
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
final Contacts contact = (Contacts) mListView.getAdapter().getItem(position);
/*Intent intent = new Intent(MainActivity.this, ContactActivity.class);
intent.putExtra(CONTACT_OBJECT2, contact);
intent.putExtra(UPDATE_POSITION_INDEX, position);
startActivityForResult(intent, 0);*/
mCallback.onSubmitClicked(contact, position);
}
});
return view;
}
@Override
public void onSubmitClickedContacts(Contacts contact, int position, String updateVariable) {
if (updateVariable.equals("update")) {
contactsArrayList.set(position,contact);
} else {
contactsArrayList.add(contact);
}
mContactsAdded.setText("Contacts Added: " + contactsArrayList.size());
mAdapter.notifyDataSetChanged();
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putSerializable(KEY_INDEX, contactsArrayList);
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
/*contactsArrayList = (ArrayList<Contacts>)savedInstanceState.getSerializable(KEY_INDEX);
mContactsAdded.setText("Contacts Added: " + contactsArrayList.size());
mAdapter = new ObjectArrayAdapter(getContext(), R.layout.contacts_list, contactsArrayList);
mListView.setAdapter(mAdapter);*/
}
public boolean onCreateOptionsMenu(Menu menu) {
//return super.onCreateOptionsMenu(menu);
menu.clear();
MenuInflater inflater = getActivity().getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
/*public void onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
if(android.R.id.home == 16908332) {
menu.findItem(android.R.id.home).setVisible(false).setEnabled(false);
}
}*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.action_add_contact:
ContactFragment secondFragment = new ContactFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.fragmentContainer, secondFragment);
transaction.addToBackStack(null);
transaction.commit();
return true;
case R.id.action_help:
Toast.makeText(getContext(), "Help is on the way!", Toast.LENGTH_SHORT).show();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
ContactListFragment:
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.AppCompatActivity;
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.EditText;
import android.widget.Toast;
import android.support.v7.widget.Toolbar;
/**
* Created by Spheven on 11/25/2015.
*/
public class ContactFragment extends Fragment implements AppStatics {
private EditText mFirst;
private EditText mLast;
private EditText mEmailAddress;
private EditText mPhone;
private Button mAddContact;
private String sFirstName;
private String sLastName;
private String sEmail;
private String sPhone;
private Contacts contact;
ActionBar actionBar;
String updateVariable = "add";
int position;
OnSubmitListener mCallback = new OnSubmitListener() {
@Override
public void onSubmitClickedContacts(Contacts contact, int position, String updateVariable) {
}
};
//Container activity must implement this interface so that the fragment can deliver information
public interface OnSubmitListener {
public void onSubmitClickedContacts(Contacts contact, int position, String updateVariable);
}
public void onAttach(MainActivity activity) {
super.onAttach(activity);
// This makes sure that the container activity has implemented
// the callback interface. If not, it throws an exception.
try {
mCallback = (OnSubmitListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " must implement OnSubmitListener");
}
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
actionBar = ((AppCompatActivity)getActivity()).getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//return super.onCreateView(inflater, container, savedInstanceState);
View view = inflater.inflate(R.layout.fragment_contact, container, false);
Bundle args = getArguments();
if (args != null) {
contact = (Contacts) args.getSerializable(CONTACT_OBJECT);
position = args.getInt(UPDATE_POSITION_INDEX, 0);
mFirst.setText(contact.getmFirstName());
mLast.setText(contact.getmLastName());
mEmailAddress.setText(contact.getmEmail());
mPhone.setText(contact.getmPhoneNumber());
mAddContact.setText("Update");
updateVariable = "update";
}
//wiring up text widgets
mFirst = (EditText) view.findViewById(R.id.editFirstName);
mLast = (EditText) view.findViewById(R.id.editLastName);
mEmailAddress = (EditText) view.findViewById(R.id.editEmail);
mPhone = (EditText) view.findViewById(R.id.editPhone);
//wiring up add contact button. includes logic for required fields and sending contact back
//to main activity
mAddContact = (Button) view.findViewById(R.id.btnAddContactToArray);
mAddContact.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//check that required fields are filled in
if (mFirst.getText().toString().trim().equals("")) {
mFirst.setError("First name is required");
} else if (mLast.getText().toString().trim().equals("")) {
mLast.setError("Last name is required");
} else {
//create new Contacts object and add information to it
sFirstName = mFirst.getText().toString();
sLastName = mLast.getText().toString();
sEmail = mEmailAddress.getText().toString();
sPhone = mPhone.getText().toString();
Contacts contact = new Contacts(sFirstName, sLastName, sEmail, sPhone);
mCallback.onSubmitClickedContacts(contact, position, updateVariable);
Toast.makeText(getContext(),"I got clicked",Toast.LENGTH_SHORT).show();
}
}
});
return view;
}
public boolean onCreateOptionsMenu(Menu menu) {
//return super.onCreateOptionsMenu(menu);
MenuInflater inflater = getActivity().getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
@Override
public void onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
menu.findItem(R.id.action_add_contact).setVisible(false).setEnabled(false);
menu.findItem(R.id.action_help).setVisible(false).setEnabled(false);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case android.R.id.home:
getActivity().onBackPressed();
actionBar.setDisplayHomeAsUpEnabled(false);
default:
return super.onOptionsItemSelected(item);
}
}
}
public class ContactListFragment extends Fragment implements AppStatics, ContactFragment.OnSubmitListener {
private TextView mContactsAdded;
private ListView mListView;
ObjectArrayAdapter mAdapter;
ArrayList<Contacts> contactsArrayList = new ArrayList<>();
private Contacts contact;
private String updateVariable;
private int position;
OnSubmitListener mCallback = new OnSubmitListener() {
@Override
public void onSubmitClicked(Contacts contact, int position) {
}
};
//Container activity must implement this interface so that the fragment can deliver information
public interface OnSubmitListener {
public void onSubmitClicked(Contacts contact, int position);
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
// This makes sure that the container activity has implemented
// the callback interface. If not, it throws an exception.
try {
mCallback = (OnSubmitListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " must implement OnHeadlineSelectedListener");
}
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//return super.onCreateView(inflater, container, savedInstanceState);
View view = inflater.inflate(R.layout.fragment_contact_list,container,false);
//wiring up the contactsAdded
mContactsAdded = (TextView) view.findViewById(R.id.textContactsAdded);
mContactsAdded.setText("Contacts Added: " + contactsArrayList.size());
//wiring up the adapter
mAdapter = new ObjectArrayAdapter(getContext(), R.layout.contacts_list, contactsArrayList);
//wire up list view
mListView = (ListView) view.findViewById(android.R.id.list);
//display the list
mListView.setAdapter(mAdapter);
//display the "no items to display" message only if list view is empty
mListView.setEmptyView(view.findViewById(android.R.id.empty));
//set on click listener for listview
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
final Contacts contact = (Contacts) mListView.getAdapter().getItem(position);
/*Intent intent = new Intent(MainActivity.this, ContactActivity.class);
intent.putExtra(CONTACT_OBJECT2, contact);
intent.putExtra(UPDATE_POSITION_INDEX, position);
startActivityForResult(intent, 0);*/
mCallback.onSubmitClicked(contact, position);
}
});
return view;
}
@Override
public void onSubmitClickedContacts(Contacts contact, int position, String updateVariable) {
if (updateVariable.equals("update")) {
contactsArrayList.set(position,contact);
} else {
contactsArrayList.add(contact);
}
mContactsAdded.setText("Contacts Added: " + contactsArrayList.size());
mAdapter.notifyDataSetChanged();
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putSerializable(KEY_INDEX, contactsArrayList);
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
/*contactsArrayList = (ArrayList<Contacts>)savedInstanceState.getSerializable(KEY_INDEX);
mContactsAdded.setText("Contacts Added: " + contactsArrayList.size());
mAdapter = new ObjectArrayAdapter(getContext(), R.layout.contacts_list, contactsArrayList);
mListView.setAdapter(mAdapter);*/
}
public boolean onCreateOptionsMenu(Menu menu) {
//return super.onCreateOptionsMenu(menu);
menu.clear();
MenuInflater inflater = getActivity().getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
/*public void onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
if(android.R.id.home == 16908332) {
menu.findItem(android.R.id.home).setVisible(false).setEnabled(false);
}
}*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.action_add_contact:
ContactFragment secondFragment = new ContactFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.fragmentContainer, secondFragment);
transaction.addToBackStack(null);
transaction.commit();
return true;
case R.id.action_help:
Toast.makeText(getContext(), "Help is on the way!", Toast.LENGTH_SHORT).show();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
公共类ContactListFragment扩展片段实现应用静态,ContactFragment.OnSubmitListener{
私有文本视图mContactsAdded;
私有列表视图;
ObjectArrayAdapter mAdapter;
ArrayList contactsArrayList=新建ArrayList();
私人接触;
私有字符串可更新变量;
私人职位;
OnSubmitListener mCallback=新的OnSubmitListener(){
@凌驾
SubmitClicked上的公共无效(联系人,内部位置){
}
};
//容器活动必须实现此接口,以便片段可以传递信息
SubmitListener上的公共接口{
SubmitClicked上的公共无效(联系人,内部位置);
}
@凌驾
创建时的公共void(@Nullable Bundle savedInstanceState){
super.onCreate(savedInstanceState);
设置选项菜单(真);
}
@凌驾
公共事务主任(活动){
超级转速计(活动);
//这确保容器活动已实现
//回调接口。如果不是,则抛出异常。
试一试{
mCallback=(OnSubmitListener)活动;
}catch(ClassCastException e){
抛出新的ClassCastException(activity.toString()
+“必须实现OnHeadlineSelectedListener”);
}
}
@可空
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
//返回super.onCreateView(充气机、容器、savedInstanceState);
视图=充气机。充气(右布局。碎片联系列表,容器,错误);
//将接触器连接起来
mContactsAdded=(TextView)view.findViewById(R.id.textContactsAdded);
mContactsAdded.setText(“添加的联系人:+contactsArrayList.size());
//连接适配器
mAdapter=newObjectArrayAdapter(getContext(),R.layout.contacts_list,contactsArrayList);
//连接列表视图
mListView=(ListView)view.findviewbyd(android.R.id.list);
//显示列表
mListView.setAdapter(mAdapter);
//仅当列表视图为空时才显示“无要显示的项目”消息
mListView.setEmptyView(view.findViewById(android.R.id.empty));
//设置listview的单击侦听器
mListView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
最终联系人联系人=(联系人)mListView.getAdapter().getItem(位置);
/*意向意向=新意向(MainActivity.this、ContactActivity.class);
意向书(联系对象2,联系方式);
意向。额外(更新位置索引,位置);
startActivityForResult(意向,0)*/
mCallback.onSubmitClicked(联系人、位置);
}
});
返回视图;
}
@凌驾
SubmitClickedContacts(Contacts contact,int position,String updateVariable)上的公共无效{
if(updateVariable.equals(“更新”)){
联系人列表。设置(位置、联系人);
}否则{
联系人列表。添加(联系人);
}
mContactsAdded.setText(“添加的联系人:+contactsArrayList.size());
mAdapter.notifyDataSetChanged();
}
@凌驾
SaveInstanceState上的公共无效(束超出状态){
super.onSaveInstanceState(超出状态);
outState.putSerializable(键索引、联系人列表);
}
@凌驾
ActivityCreated上的公共无效(@Nullable Bundle savedinStateCState){
super.onActivityCreated(savedInstanceState);
/*contactsArrayList=(ArrayList)savedInstanceState.getSerializable(键索引);
mContactsAdded.setText(“添加的联系人:+contactsArrayList.size());
mAdapter=newObjectArrayAdapter(getContext(),R.layout.contacts_list,contactsArrayList);
mListView.setAdapter(mAdapter)*/
}
公共布尔onCreateOptions菜单(菜单){
//返回super.onCreateOptions菜单(菜单);
menu.clear();
MenuInflater充气器=getActivity()。getMenuInflater();
充气机。充气(右菜单,菜单);
返回true;
}
/*在PrepareOptions功能表(菜单)上公共作废{
super.onPrepareOptions菜单(菜单);
如果(android.R.id.home==16908332){
menu.findItem(android.R.id.home).setVisible(false).setEnabled(false);
}
}*/
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
开关(item.getItemId()){
案例R.id.action\u add\u联系人:
ContactFragment secondFragment=新ContactFragment();
零碎交易