-1

I am working on an application in which i get data from server and parse it in AsyncTask in MainActivity Then i call another activity named DetailsPage which have fragments. here is how i am calling and passing argument to DetailsPage. this is called in AsyncTask.

Intent myIntent = new Intent(MainActivity.this, DetailsPage.class);
                    myIntent.putExtra("adminId",adminId);
                    startActivity(myIntent);
                }

then in DetailPage i am getting these argument and putting it in bundle for fragment run by DetailsPage.

public class DetailsPage extends FragmentActivity implements
        ActionBar.TabListener {

    private ViewPager viewPager;
    private TabsPagerAdapter mAdapter;
    private ActionBar actionBar;
    // Tab titles
    private String[] tabs = {"Payments", "Goods" };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_details_page);
        /*Get Extra Values from the mainActivity*/
        Bundle extras = getIntent().getExtras();
        if (extras != null) {
            String value = extras.getString("adminId");
            Bundle bundle=new Bundle();
            bundle.putString("adminId", value);
            PaymentsFragment payment_frag=new PaymentsFragment();
            payment_frag.setArguments(bundle);
        }
        // Initilization
        viewPager = (ViewPager) findViewById(R.id.pager);
        actionBar = getActionBar();
        mAdapter = new TabsPagerAdapter(getSupportFragmentManager());

        viewPager.setAdapter(mAdapter);
        //actionBar.setHomeButtonEnabled(false);
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);        

        // Adding Tabs
        for (String tab_name : tabs) {
            actionBar.addTab(actionBar.newTab().setText(tab_name)
                    .setTabListener(this));
        }

        /**
         * on swiping the viewpager make respective tab selected
         * */
        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

            @Override
            public void onPageSelected(int position) {
                // on changing the page
                // make respected tab selected
                actionBar.setSelectedNavigationItem(position);
            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
            }

            @Override
            public void onPageScrollStateChanged(int arg0) {
            }
        });
    }

    @Override
    public void onTabReselected(Tab tab, FragmentTransaction ft) {
    }

    @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {
        // on tab selected
        // show respected fragment view
        viewPager.setCurrentItem(tab.getPosition());
    }

    @Override
    public void onTabUnselected(Tab tab, FragmentTransaction ft) {
    }

}

and in PaymentsFragment i am trying to get the string from bundle inside oncreateView

public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
/*Get Extras Passed by MainActivity*/
        adminId=getArguments().getString(adminId);
        View rootView = inflater.inflate(R.layout.fragment_payments, container, false);
        CustomListView = this;
        String serverURL = "http://ott.edgeaccounts.com/Webservices/GetPaymentService.php";
        new GetPayments().execute(serverURL);
        Resources res =getResources(); 
        list=(ListView)rootView.findViewById(R.id.list_payments);
        adapter=new CustomAdapter(CustomListView, CustomListViewValuesArr,res);
        list.setAdapter(adapter);

        return rootView;
    }

but it gives null pointer exception in this line adminId=getArguments().getString(adminId); Thanks in advance for any help.

user3297557
  • 119
  • 2
  • 3
  • 11

1 Answers1

2

Change this

adminId=getArguments().getString(adminId);

to

adminId=getArguments().getString("adminId");

cause the key is "adminId"

bundle.putString("adminId", value); // in quotes adminId

You can reference

Send data from activity to fragment in android

Community
  • 1
  • 1
Raghunandan
  • 132,755
  • 26
  • 225
  • 256