Я хочу получить текст TextView текущей страницы ViewPager в тосте в onPageSelected(). Помните, что мои данные находятся в списке массивов, если я удаляю любую позицию из списка массивов, этот текст не должен отображаться в тосте на сабвуфере-пейджере.Как получить текст текстового представления внутри текущей страницы-пейджера в Toast
Ниже мой код:
public class MainActivity extends FragmentActivity {
public static TextView tx;
CustomViewPager pager1;
List<Fragment> fragments1;
public PagerAdapter adapter1;
ArrayList<String> image = new ArrayList<String>() {{
add("0");
add("1");
add("2");
add("3");
add("4");
}};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.text);
pager1 = (CustomViewPager) findViewById(R.id.pager1);
fragments1 = getFragments1();
adapter1 = new PagerAdapter(getSupportFragmentManager(), fragments1);
pager1.setAdapter(adapter1);
removeView1(1);
adapter1.notifyDataSetChanged();
pager1.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
String S= (String) tx.getTag();
Toast toast = Toast.makeText(getApplicationContext(),"Text is " +S, Toast.LENGTH_SHORT);
toast.show();
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
public void removeView1 (int position)
{
adapter1.removeView1(pager1, position);
adapter1.notifyDataSetChanged();
}
public class PagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments;
public PagerAdapter(FragmentManager fm, List<Fragment> fragments) {
super(fm);
this.fragments = fragments;
}
@Override
public Fragment getItem(int position) {
return this.fragments.get(position);
}
@Override
public int getCount() {
return this.fragments.size();
}
@Override
public int getItemPosition (Object object)
{
if (object instanceof MyImageSlider) {
return POSITION_NONE;
}
return POSITION_UNCHANGED;
}
public int removeView1 (ViewPager pager, int position)
{
pager.setAdapter (null);
fragments.remove (position);
pager.setAdapter (this);
return position;
}
}
private List<Fragment> getFragments1() {
List<Fragment> fList = new ArrayList<Fragment>();
for (int i = 0; i < image.size(); i++) {
fList.add(MyImageSlider.newInstance(image.get(i)));
}
return fList;
}
public static class MyImageSlider extends Fragment {
String newid;
public static MyImageSlider newInstance(String s)
{
MyImageSlider slider=new MyImageSlider();
Bundle b=new Bundle();
b.putString("newid", s);
slider.setArguments(b);
return slider;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
newid = getArguments().getString("newid");
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.leftpager,container, false);
tx = (TextView)view.findViewById(R.id.text);
tx.setText(newid);
tx.setTag(newid);
return view;
}
}
}
Получить номер страницы от 'onPageSelected()' и в соответствии текст из списка, используя этот номер страницы! – AndiGeeky
Можете ли вы дать мне небольшой пример кода. потому что, если я получаю текст в соответствии с текущей позицией страницы, когда я удаляю любую страницу, она все равно отображает удаленный текст. –
Да, вы правы! то вам также нужно удалить тот же элемент из списка. – AndiGeeky