我使用本教程制作滑动菜单this
//这是我的片段名称
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);
}
}
任何人都可以帮助我,我怎么能在这里分配片段标签 提前谢谢你
答案 0 :(得分:1)
设置setHasOptionsMenu(true); 在创建视图
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_messages, container,
false);
//your code here
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
}
答案 1 :(得分:0)
在您的主要活动中,假设您的片段有一个名为R.id.details的ID,
HomeFragment f = (HomeFragment)getFragmentManager().findFragmentById(R.id.details);
if(f != null) {
f.refresh_data();
}
您可以为XML布局文件中的片段分配ID。