Note that there are some explanatory texts on larger screens.

plurals
  1. POReference to EditText in ViewPager creates null pointer exception
    primarykey
    data
    text
    <p><strong>What I'm trying to do:</strong></p> <p>Have users input data on 3 different fragments, then on the 4th fragment the user will review all data input into the first 3 fragments before submitting to a database.</p> <p><strong>The issue I'm having:</strong></p> <p>Every method I've tried to set or get from the EditText's creates a <code>NullPointerException</code></p> <p><strong>My question:</strong></p> <p>For what I'm trying to do, what is the correct method to call for the text value of an EditText from one fragment, and set that text in an EditText in another fragment anytime a page is changed?</p> <p><strong>Notes:</strong></p> <p>I've simplified the code down to only reflect one EditText on each fragment for ease of replication and for ease of dissecting code.</p> <p><strong>Code:</strong></p> <pre><code>import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.widget.EditText; public class SwipeEnterResults extends FragmentActivity { ResultsPagerAdapter mResultsPagerAdapter; ViewPager mViewPager; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.swipe_enter_results); mResultsPagerAdapter = new ResultsPagerAdapter(getSupportFragmentManager()); mViewPager = (ViewPager) findViewById(R.id.pager); mViewPager.setAdapter(mResultsPagerAdapter); } public void onResume() { super.onResume(); //Declare EditText(s) final EditText txt1= (EditText) mViewPager.findViewById(R.id.txt1); final EditText txt2= (EditText) mViewPager.findViewById(R.id.txt2); final EditText txt3= (EditText) mViewPager.findViewById(R.id.txt3); final EditText rvw1= (EditText) mViewPager.findViewById(R.id.rvw1); final EditText rvw2= (EditText) mViewPager.findViewById(R.id.rvw2); final EditText rvw3= (EditText) mViewPager.findViewById(R.id.rvw3); mViewPager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int position) { rvw1.setText(txt1.getText().toString()); rvw2.setText(txt2.getText().toString()); rvw3.setText(txt3.getText().toString()); } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } }); } public class ResultsPagerAdapter extends FragmentPagerAdapter{ public ResultsPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { Fragment f = new Fragment(); switch (position) { case 0: f = new Swipe1(); break; case 1: f = new Swipe2(); break; case 2: f = new Swipe3(); break; case 3: f = new SwipeReviewResults(); break; } return f; } @Override public int getCount() { return 4; } @Override public CharSequence getPageTitle(int position) { switch (position) { case 0: return getString(R.string.str1); case 1: return getString(R.string.str2); case 2: return getString(R.string.str3); case 3: return getString(R.string.strReview); default: return "Page " + (position + 1); } } } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload