android-调用方法片段存在从她的活动
问题描述:
我使用本教程,使滑动菜单thisandroid-调用方法片段存在从她的活动
//这是我的名字片段
HomeFragment.java
package info.androidhive.slidingmenu;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class HomeFragment extends Fragment {
public HomeFragment(){}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_home, container, false);
return rootView;
}
public void refresh_data(){
// my code goes here
}
}
我想调用refresh_data()方法主要活动 在主菜单中
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// toggle nav drawer on selecting action bar app icon/title
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
// Handle action bar actions click
switch (item.getItemId()) {
case R.id.refresh:
//i should call refresh method here
return true;
default:
return super.onOptionsItemSelected(item);
}
}
任何一个可以帮助我,我怎么能在这里分配片段标签 预先感谢您
答
set setHasOptionsMenu(true); 上创建视图
,并覆盖上选择项目中选择
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// consider your menu have refresh item
case R.id.refresh:
Toast.makeText(getActivity(), "Refresh active", Toast.LENGTH_LONG).show();
refresh_messages();
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
refresh_messages(){
//refresh code here
}
答
在您的主要活动,假设你的片段有一个名为R.id.details的ID,
HomeFragment f = (HomeFragment)getFragmentManager().findFragmentById(R.id.details);
if(f != null) {
f.refresh_data();
}
您可以在XML布局文件分配一个ID到一个片段。
考虑对你的碎片处理的动作栏选项(在的onCreate(),调用'setHasOptionsMenu(真)'),然后覆盖' onCreateOptionsMenu()'和'onOptionsItemSelected()'从你的Fragment。 – kcoppock