В настоящее время у меня есть Project A (как Android-библиотека) и Project B.
В Project B я использую фрагмент страницы для дизайна. На фрагменте страницы 1 этот фрагмент фактически вызывается из проекта A (библиотеки).
Как мне получить значение onclick от проекта A до проекта B.
// Объявление фрагмента страницы в проекте Б
CustFragment fragment1 = new CustFragment ();
// прослушиватель onclick в проекте A
mContactList.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Cursor cursor = (Cursor) parent.getAdapter().getItem(position);
long rawId = cursor.getLong(cursor
.getColumnIndex(ContactsContract.Data.RAW_CONTACT_ID));
// how do i pass the value to B?
}
EDITED: я отредактировал этот пост, добавив больше кода со своей стороны
// Объявление фрагмента в проекте B
public class MainPagerFragmentAdapter extends FragmentPagerAdapter {
ListFragment list;
SearchFragment search;
public MainPagerFragmentAdapter(FragmentManager fragmentManager) {
super(fragmentManager);
}
@Override
public int getCount() {
return 2;
}
public String getPageTitle(int position) {
switch (position) {
case 0: return AppSingleton.getCurrentActivity().getString(R.string.pager_appointments_tab);
case 1: return AppSingleton.getCurrentActivity().getString(R.string.explist_filter_text);
}
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
if (customerList == null)
list = new ListFragment();
return customerList;
case 1:
if (contactSearch == null)
search = new SearchFragment();
return contactSearch;
}
return null;
}
}
// прослушиватель onclick в проекте A (проект библиотеки)
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
log.info("ContactsFragment onCreateView");
mContactFragmentView = inflater.inflate(R.layout.fragment_contacts,
container, false);
mContactList = (ListView) mContactFragmentView
.findViewById(R.id.contacts_list);
mContactList.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Cursor cursor = (Cursor) parent.getAdapter().getItem(position);
long rawId = cursor.getLong(cursor
.getColumnIndex(ContactsContract.Data.RAW_CONTACT_ID));
// what have to done here to pass back to B dynamically
}
});
getLoaderManager().initLoader(0, null, this);
return mContactFragmentView;
}
- java.lang.NullPointerException в com.contact.library.ContactsFragment $ 2.onItemClick (ContactsFragment.java:143) в android.widget.AdapterView.performItemClick (AdapterView.java:308) в android.widget.AbsListView.performItemClick (AbsListView. : 1509) на android.widget.AbsListView $ PerformClick.run (AbsListView.java:3467) на android.widget.AbsListView $ 3.run (AbsListView.java:4830) на android.os.Handler.handleCallback (Handler.java:733 ) в android.os.Handler.dispatchMessage (Handler.java:95) в android.os.Looper.loop (Looper.java:146) в android.app.ActivityThread.main (ActivityThread.java:5602) в java.lang .reflect.Method.invokeNative (собственный метод) в java.lang.reflect.Method.invoke (Method.java:515) в com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:1283) в com .android.internal.os.ZygoteInit.main (ZygoteInit.java:1099) в dalvik.system.NativeStart.main (собственный метод)