Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在ViewPager中引用EditText会创建空指针异常_Android_Android Fragments_Nullpointerexception_Android Viewpager_Findviewbyid - Fatal编程技术网

Android 在ViewPager中引用EditText会创建空指针异常

Android 在ViewPager中引用EditText会创建空指针异常,android,android-fragments,nullpointerexception,android-viewpager,findviewbyid,Android,Android Fragments,Nullpointerexception,Android Viewpager,Findviewbyid,我想做什么: 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

我想做什么:

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);
        }
    }
}
}
让用户在3个不同的片段上输入数据,然后在第4个片段上,用户将在提交到数据库之前查看输入到前3个片段中的所有数据

我遇到的问题:

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);
        }
    }
}
}
我尝试设置或从EditText中获取的每个方法都会创建一个
NullPointerException

我的问题:

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);
        }
    }
}
}
对于我试图做的,什么是正确的方法来调用一个片段中EditText的文本值,并在页面更改时在另一个片段中的EditText中设置该文本

注意事项:

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);
        }
    }
}
}
为了便于复制和解析代码,我简化了代码,使每个片段上只反映一个EditText

代码:

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);
        }
    }
}
}

不要将
EditText
s设为最终文本。尝试使用以下代码代替当前的
onResume

EditText txt1= (EditText) mViewPager.findViewById(R.id.txt1);
EditText txt2= (EditText) mViewPager.findViewById(R.id.txt2);
EditText txt3= (EditText) mViewPager.findViewById(R.id.txt3);

EditText rvw1= (EditText) mViewPager.findViewById(R.id.rvw1);
EditText rvw2= (EditText) mViewPager.findViewById(R.id.rvw2);
EditText rvw3= (EditText) mViewPager.findViewById(R.id.rvw3);

不要将
EditText
s设为最终文本。尝试使用以下代码代替当前的
onResume

EditText txt1= (EditText) mViewPager.findViewById(R.id.txt1);
EditText txt2= (EditText) mViewPager.findViewById(R.id.txt2);
EditText txt3= (EditText) mViewPager.findViewById(R.id.txt3);

EditText rvw1= (EditText) mViewPager.findViewById(R.id.rvw1);
EditText rvw2= (EditText) mViewPager.findViewById(R.id.rvw2);
EditText rvw3= (EditText) mViewPager.findViewById(R.id.rvw3);

可能您的ViewPager没有id为R.id.txt1、R.id.rvw1、


确保您已在swipe\u enter\u results.xml文件中定义了所有编辑文本。否则,某些对象(可能全部)将等于null,您将得到NullPointerException。

您的ViewPager可能没有id为R.id.txt1、R.id.rvw1、

确保您已在swipe\u enter\u results.xml文件中定义了所有编辑文本。否则,某些对象(可能全部)将等于null,您将得到一个NullPointerException。

以下几点:

  • 活动中的EditText是否可能为空,因为您试图在适配器创建所有片段及其视图之前引用它们(通过它们在视图中的ID)?此外,似乎每次调用
    ResultsPagerAdapter
    getItem
    方法时,都会创建一个具有自己视图的新片段。。。因此,在创建新片段视图时,您的活动可能会引用过时的EditText视图

  • 您的活动不必关心每个片段中存在哪些视图以及它们周围的逻辑。最好让每个片段处理对自己视图的引用,并管理围绕它们的逻辑。您可以做的是有一个中央缓存,其中EditText值由片段存储/检索。例如,在
    Swipe
    片段的
    onPause()
    方法中,您可以将其EditText值存储在缓存中,而在
    SwipeReviewResults
    片段的
    onResume()
    方法中,可以从缓存中提取所有更新的EditText值

  • 在适配器的switch语句中,应该使用
    default
    块返回空的
    new Fragment()
    ,而不是不必要地预先创建它

  • 我希望这能帮到你。

    有几件事:

  • 活动中的EditText是否可能为空,因为您试图在适配器创建所有片段及其视图之前引用它们(通过它们在视图中的ID)?此外,似乎每次调用
    ResultsPagerAdapter
    getItem
    方法时,都会创建一个具有自己视图的新片段。。。因此,在创建新片段视图时,您的活动可能会引用过时的EditText视图

  • 您的活动不必关心每个片段中存在哪些视图以及它们周围的逻辑。最好让每个片段处理对自己视图的引用,并管理围绕它们的逻辑。您可以做的是有一个中央缓存,其中EditText值由片段存储/检索。例如,在
    Swipe
    片段的
    onPause()
    方法中,您可以将其EditText值存储在缓存中,而在
    SwipeReviewResults
    片段的
    onResume()
    方法中,可以从缓存中提取所有更新的EditText值

  • 在适配器的switch语句中,应该使用
    default
    块返回空的
    new Fragment()
    ,而不是不必要地预先创建它


  • 我希望这对你有所帮助。

    我最后尝试了几件事。我添加了
    mviewpage.setOffscreenPageLimit(3)
    然后将我的代码放入一个条件为
    position==3
    if
    语句中,这似乎解决了nullpointerexception的所有问题。谢谢大家的帮助

    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.CheckBox;
    import android.widget.EditText;
    
    public class SwipeEnterResults extends FragmentActivity {
    
    ResultsPagerAdapter mResultsPagerAdapter;
    ViewPager mViewPager;
    
    //Declare EditText for reviewing data on Fragment SwipeReviewResults
    EditText txt1;
    EditText rvw1;
    EditText txt2;
    EditText rvw2;
    EditText txt3;
    EditText rvw3;
    
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.swipe_enter_results);
    
        //Set up ViewPager and allow app to hold prior pages when off screen
        mResultsPagerAdapter = new ResultsPagerAdapter(getSupportFragmentManager());
        mViewPager = (ViewPager) findViewById(R.id.pager);      
        mViewPager.setAdapter(mResultsPagerAdapter);
        mViewPager.setOffscreenPageLimit(3);
    
        //When SwipeReviewResults is displayed, fill EditText's with data from other fragments
        mViewPager.setOnPageChangeListener(new OnPageChangeListener() {
            @Override
            public void onPageSelected(int position) {
    
                if (position == 3) {
                    //set values to EditTexts to pull data from 3 entry fragments and display in SwipeReviewResults
                    EditText txt1 = (EditText) mViewPager.findViewById(R.id.txt1);
                    EditText rvw1 = (EditText) mViewPager.findViewById(R.id.rvw1);
                    EditText txt2 = (EditText) mViewPager.findViewById(R.id.txt2);
                    EditText rvw2 = (EditText) mViewPager.findViewById(R.id.rvw2);
                    EditText txt3 = (EditText) mViewPager.findViewById(R.id.txt3);
                    EditText rvw3 = (EditText) mViewPager.findViewById(R.id.rvw3);
    
    
                    //Set EditText's on SwipeReviewResults
                    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;
    
            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;
            default:
                f = new Fragment();
                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);
            }
        }
    }
    }
    

    我最后尝试了几件事。我添加了
    mviewpage.setOffscreenPageLimit(3)
    然后将我的代码放入一个条件为
    position==3
    if
    语句中,这似乎解决了nullpointerexception的所有问题。谢谢大家的帮助

    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.CheckBox;
    import android.widget.EditText;
    
    public class SwipeEnterResults extends FragmentActivity {
    
    ResultsPagerAdapter mResultsPagerAdapter;
    ViewPager mViewPager;
    
    //Declare EditText for reviewing data on Fragment SwipeReviewResults
    EditText txt1;
    EditText rvw1;
    EditText txt2;
    EditText rvw2;
    EditText txt3;
    EditText rvw3;
    
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.swipe_enter_results);
    
        //Set up ViewPager and allow app to hold prior pages when off screen
        mResultsPagerAdapter = new ResultsPagerAdapter(getSupportFragmentManager());
        mViewPager = (ViewPager) findViewById(R.id.pager);      
        mViewPager.setAdapter(mResultsPagerAdapter);
        mViewPager.setOffscreenPageLimit(3);
    
        //When SwipeReviewResults is displayed, fill EditText's with data from other fragments
        mViewPager.setOnPageChangeListener(new OnPageChangeListener() {
            @Override
            public void onPageSelected(int position) {
    
                if (position == 3) {
                    //set values to EditTexts to pull data from 3 entry fragments and display in SwipeReviewResults
                    EditText txt1 = (EditText) mViewPager.findViewById(R.id.txt1);
                    EditText rvw1 = (EditText) mViewPager.findViewById(R.id.rvw1);
                    EditText txt2 = (EditText) mViewPager.findViewById(R.id.txt2);
                    EditText rvw2 = (EditText) mViewPager.findViewById(R.id.rvw2);
                    EditText txt3 = (EditText) mViewPager.findViewById(R.id.txt3);
                    EditText rvw3 = (EditText) mViewPager.findViewById(R.id.rvw3);
    
    
                    //Set EditText's on SwipeReviewResults
                    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;
    
            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;
            default:
                f = new Fragment();
                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);
            }
        }
    }
    }
    

    有4个具有不同ID的独立xml布局。这不是问题所在。在我的完整设计中,总共有近60个EditText,每个EditText最后都是空的。这不是问题所在。在我的完整设计中,总共有近60个EditText,它们中的每一个都是空的。当我尝试引用EditText进行更改时,会出现一个错误。当我尝试引用EditText进行更改时,会出现一个错误。如下所示:
    @Override public Fragment getItem(int position){Fragment f;switch(位置){case 0:f=new SwipeChemicalsApplied();break;case 1:f=new SwipeRaw();break;case 2:f=new swipeefinished();break;case 3:f=new SwipeReviewResults();break;default:f=new Fragment();break;}返回f;}