2014-12-07 4 views
0

У меня есть MainActivity как этотНевозможно получить доступ к ListFragment

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
} } 

и это

public class MyListFragment extends ListFragment implements OnItemClickListener { 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.list_fragment, container, false); 

    return view; 
} 

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 

    super.onActivityCreated(savedInstanceState); 

    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(getActivity(), R.array.Planets, android.R.layout.simple_list_item_1); 

    setListAdapter(adapter); 
    getListView().setOnItemClickListener(this); 
    int count = getListView().getCount(); 
    getListView().setSelection(getListView().getCount() - 1); 


    test(); 

} 

public void test(){ 
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(getActivity(), R.array.Planets, android.R.layout.simple_list_item_1); 

    setListAdapter(adapter); 
    getListView().setOnItemClickListener(this); 
    int count = getListView().getCount(); 
    getListView().setSelection(getListView().getCount() - 1); 
    Toast.makeText(getActivity(), "ccc"+count, Toast.LENGTH_SHORT) 
      .show(); 

} 


@Override 
public void onItemClick(AdapterView<?> parent, View view, int position, 
         long id) { 

    Toast.makeText(getActivity(), "Item: " + position, Toast.LENGTH_SHORT) 
      .show(); 

} } 

activity_main.xml имеет

fragment 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:name="com.example.mike.mqtt.MyListFragment" 
    android:id="@+id/fragment_content" /> 

При запуске приложения я получаю fragment_content заполнен несколькими строками. Как я могу получить доступ к ListFragment (MyListFragment.java) изнутри MainActivity.java в onCreate. Когда я нажимаю кнопку, получаю подсчет содержимого списка и настраиваем фокус в конце списка.

Я понятия не имею. Благодарю вас.

ответ

0
MyListFragment fragment = (MyListFragment) getFragmentManager().findFragmentById(R.id.fragment_content) 
0

Я избегаю использования фрагментов в XML, поскольку он меня заменяет на лету. Я обычно использую что-то вроде этого:

private MyListFragment mListFragment; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    // the usual business 

    FragmentManager fm = getSupportFragmentManager(); 
    if (savedInstanceState == null) { 
    // the activity opened for the first time, we create and commit fragment 
    mListFragment = new MyListFragment(); 
    fm.beginTransaction().replace(android.R.id.content, f).commit); 
    } else { 
    // activity is recreating so it's safe to find already added fragments 
    mListFragment = fm.findFragmentById(android.R.id.content); 
    } 

}

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