2014-01-27 6 views
0

У меня есть активность со списком и кнопкой, при нажатии кнопки я добавляю фрагмент. Моя проблема заключается в том, что когда я прокручиваю фрагмент, закройте фрагмент, и просмотр списка в активности также прокручивается, когда я нажимаю кнопку, чтобы вернуть фрагмент приложения. Любая помощь?Сбой активности при переключении фрагмента

Основной вид деятельности код

 public class MainActivity extends Activity implements OnClickListener { 
ListView listView ; 
Button B; 
FragmentTransaction fragmentTransaction; 
FragmentManager fragmentManager; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
     fragmentManager = getFragmentManager(); 
    fragmentTransaction = fragmentManager.beginTransaction(); 
    listView = (ListView) findViewById(R.id.list); 

    // Defined Array values to show in ListView 
     String[] values = new String[] { "1", 
             "2", 
             "3", 
             "4", 
             "5", 
             "6", 
             "7", 
             "8", 
             "9", 
             "10", 
             "11", 
             "12", 
             "13", 
             "14", 
             "15", 
             "16", 
             "17", 
             "18", 
             "19", 
             "20", 
             "21", 
             "22", 
             "23" 



            }; 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_1, android.R.id.text1, values); 


      // Assign adapter to ListView 
      listView.setAdapter(adapter); 
    B=(Button)findViewById(R.id.button1); 
    B.setOnClickListener(this); 
} 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

    @Override 
    public void onClick(View v) { 
    // TODO Auto-generated method stub 


    switch(v.getId()) 
    { 
     case R.id.button1: 
      Second s = new Second(); 

      fragmentTransaction.add(android.R.id.content, s); 

       fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); 
      fragmentTransaction.addToBackStack("Cam"); 
      fragmentTransaction.commit(); 
     break; 





    } 


    } 

    } 
+0

Пожалуйста, добавьте аварийные журналы –

+0

Показать свой стек. – Piyush

+0

неустранимые: Основной процесс: com.example.fragmenttransisition, ПИД: 8193 java.lang.IllegalStateException: фиксация уже называется \t на android.app.BackStackRecord.commitInternal (BackStackRecord.java:583) \t в android.app .BackStackRecord.commit (BackStackRecord.java:575) \t в com.example.fragmenttransisition.MainActivity.onClick (MainActivity.java:82) в android.view.View.performClick (View.java:4438) – Samantha

ответ

1

Добавьте к этому следующее:

switch(v.getId()) 
    { 
     case R.id.button1: 
      Second s = new Second(); 
      //add this 
      fragmentTransaction = fragmentManager.beginTransaction(); 
      fragmentTransaction.replace(android.R.id.content, s); 
      fragmentTransaction.addToBackStack(null); 
      fragmentTransaction.commit(); 
     break; 

    } 
+0

Спасибо, что фиксированные проблема с сбоем, но как мне остановить прокрутку списка в основной деятельности? – Samantha

+0

Извините, я не совсем понял, что вы там. Почему вам нужно остановить прокрутку списка? –

+0

Когда я нажимаю кнопку, фрагмент открывается и закрывает экран своим видом, однако я прокручиваю фрагмент и закрываю фрагмент, также прокручивается список – Samantha

0

Попробуйте ::

Удалить первый fragmentManager = getFragmentManager(); fragmentTransaction = fragmentManager.beginTransaction(); из onCreate(...){...} метод

и поместите этот код на в этом случае, т.е.

@Override 
    public void onClick(View v) { 
    // TODO Auto-generated method stub 


    switch(v.getId()) 
    { 
     case R.id.button1: 
      Second s = new Second(); 
      fragmentManager = getFragmentManager(); 
      fragmentTransaction = fragmentManager.beginTransaction(); 
      fragmentTransaction.add(android.R.id.content, s); 

       fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); 
      fragmentTransaction.addToBackStack("Cam"); 
      fragmentTransaction.commit(); 
     break; 
    } 

    } 
Смежные вопросы