Android 未加载onClick的片段

Android 未加载onClick的片段,android,android-fragments,android-fragmentactivity,Android,Android Fragments,Android Fragmentactivity,我有两个片段和一个主要活动。第一个片段ContactListFragment是联系人列表,第二个片段ContactFragment收集联系人信息,然后将该信息发送回MainActivity以再次发送到ContactListFragment。单击ContactFragment中的“添加联系人”按钮时,应再次加载第一个片段,并显示更新的联系人列表。onClick正在工作,我有一条Toast消息显示,我的mCallback中有信息,但是当我单击“添加联系人”时,我的第一个片段不会再次加载。我对片段是新

我有两个片段和一个主要活动。第一个片段ContactListFragment是联系人列表,第二个片段ContactFragment收集联系人信息,然后将该信息发送回MainActivity以再次发送到ContactListFragment。单击ContactFragment中的“添加联系人”按钮时,应再次加载第一个片段,并显示更新的联系人列表。onClick正在工作,我有一条Toast消息显示,我的mCallback中有信息,但是当我单击“添加联系人”时,我的第一个片段不会再次加载。我对片段是新手,但从我看到的所有代码来看,我认为我已经正确地连接了它。所以你不必去挖掘它,这是我onClick中的相关代码

    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();
零碎交易