У меня есть две ДЕЯТЕЛЬНОСТИ (A и B). У меня ФРАГМЕНТ F в ДЕЯТЕЛЬНОСТИ A. Мой фрагмент F коинтайн 3 EditText (1,2,3).Возобновляющее состояние активности фрагмента
Мое приложение получает строку из Activity B и помещает ее в EditText 3. У меня нет проблем с этим. Моя проблема в том, что когда я ввожу что-то в EditText 1 и 2, я получаю строку из ACTIVITY B и помещаю ее в EditText 3, вся информация, введенная в EditText 1 и 2, ушла.
Мой вопрос, как будет информация, которую я напечатал в EditText 1 и 2 пребывания, даже если я получаю строку из АКТИВНОСТИ В до EditText 3. Вот мой код:
АКТИВНОСТЬ
public class ActivityA extends FragmentActivity {
ViewPager viewPager = null;
PageIndicator pIndicator;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_a);
viewPager = (ViewPager) findViewById(R.id.pager);
FragmentManager fragmentManager = getSupportFragmentManager();
viewPager.setAdapter(new MyAdapter(fragmentManager));
pIndicator = (PageIndicator)findViewById(R.id.indicator);
pIndicator.setViewPager(viewPager);
}
public class MyAdapter extends FragmentStatePagerAdapter {
public MyAdapter (FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int i) {
Fragment fragment = null;
if (i == 0)
{
fragment = new FragmentF();
}
if (i == 1)
{
fragment = new FragmentG();
}
if (i == 2)
{
fragment = new FragmentH();
}
if (i == 3)
{
fragment = new FragmentI();
}
return fragment;
}
@Override
public int getCount() {
return 4;
}
@Override
public CharSequence getPageTitle(int position) {
if (position == 0)
{
return "TAB.F";
}
if (position == 1)
{
return "TAB.G";
}
if (position == 2)
{
return "TAB.H";
}
if (position == 3)
{
return "TAB.I";
}
return null;
}
}
public void btn_to_actb(View view) {
Intent intent = new Intent(this, ActivityB.class);
startActivity(intent);
}
АКТИВНОСТИ В
public final static String EXTRA_MESSAGE = "com.sample.MESSAGE";
// onClick get button from activity B layout
public void get(View view) {
Intent intent = new Intent(this, ActivityA.class);
TextView textView = (TextView)findViewById(R.id.coordinates);
String message = textView.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
ФРАГМЕНТ F
EditText editText;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
String num = getActivity().getIntent().getStringExtra("com.sample.MESSAGE");
View v = inflater.inflate(R.layout.fragmentf, container, false);
// EditText3 from fragment F layout
editText = (EditText) v.findViewById(R.id.edittext3);
editText.setText(num);
return v;
}
теперь я добавил свою АКТИВНОСТЬ код сэр .. – speedsir
я получаю сообщение об ошибке в EditText1.setText (getActivity() getTextOfEditText1().); он говорит: «Метод getTextOfEditText1() не определен для типа FragmentActivity». То же, что и EditText2. Я изменил его на EditText1.setText (((ActivityA) getActivity()). GetTextOfEditText1()); но мое приложение падает, когда я пытался его запустить. – speedsir
Без следа я бы сказал, что у вас есть исключение NullPointerException. Вы должны позаботиться о Строках, возвращенных Управлением. Код, который я написал, очень прост, более сложным может быть что-то вроде этого. @Override public void onResume() { Строка text1 = getActivity(). GetTextOfEditText1(); if (text1! = Null) { EditText1.setText (text1); } // такой же с edit2 super.onResume(); } – jDur