Страница 1 из 1

ListFragment и кнопка назад

Добавлено: 04 ноя 2015, 23:42
Dont
Есть код Activity где сделан переход по папкам в ListFragment

Код: Выделить всё

package com.mycompany.mylistfragment;

import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;

public class MainActivity extends Activity implements SimpleListFragment.OnArticleSelectedListener
{

	@Override
	public void onArticleSelected(String articleStr)
	{
		selectItem(articleStr);
	}

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
		if (savedInstanceState == null)
		{
			selectItem("/sdcard");
		}
    }
	private void selectItem(String str)
	{
		str = str != null ? str : "/";
		SimpleListFragment fragment = SimpleListFragment.newInstance(str);
		getFragmentManager().beginTransaction().replace(R.id.container, fragment).commit();
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu)
	{
		menu.add(0, 1, 0, "Root");
		menu.add(0, 2, 0, "SD card");
		menu.add(1, 3, 0, "Exit");
		return super.onCreateOptionsMenu(menu);
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item)
	{
		switch (item.getItemId())
		{
			case 1:
				selectItem("/");
				break;
			case 2:
				selectItem("/sdcard");
				break;
			case 3:
				finish();
		}
		return super.onOptionsItemSelected(item);
	}

}
Надо как-то грамотно сделать кнопку "назад", чтоб вернуться в предыдущую папку и было обновление ListFragment, это на тот случай если там произошли изменения

Re: ListFragment и кнопка назад

Добавлено: 16 ноя 2015, 22:28
Elek
Нужно создать Listener в фрагменте, переопределить метод:

Код: Выделить всё

@Override
    public void onBackPressed() {
        super.onBackPressed();
}
В этом методе вызывать Listener фрагмента, который обновляет данные.