Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在片段中使用setMenuVisibility?_Java_Android_Android Fragments_Android Activity - Fatal编程技术网

Java 如何在片段中使用setMenuVisibility?

Java 如何在片段中使用setMenuVisibility?,java,android,android-fragments,android-activity,Java,Android,Android Fragments,Android Activity,我有一个滑动选项卡式布局,有七个片段。我正在另一个活动中保存我的事件,并在片段中从数据库检索数据并创建视图 现在,当我在addevent活动中保存数据并完成该活动并返回fragment时,事件并没有被创建。我正在使用setMenuVisibility函数来显示此事件。但当我调试时,setMenuVisibility在我从活动返回时从未运行 这里怎么了?当我从活动返回时,如何在片段上显示事件 片段代码: public class Mon extends Fragment { privat

我有一个滑动选项卡式布局,有七个片段。我正在另一个活动中保存我的事件,并在片段中从数据库检索数据并创建视图

现在,当我在addevent活动中保存数据并完成该活动并返回fragment时,事件并没有被创建。我正在使用setMenuVisibility函数来显示此事件。但当我调试时,setMenuVisibility在我从活动返回时从未运行

这里怎么了?当我从活动返回时,如何在片段上显示事件

片段代码:

public class Mon extends Fragment {

    private FrameLayout fab;
    private EventTableHelper mDb;
    private Intent i;
    private ViewGroup dayplanView;
    private int minutesFrom,minutesTo;
    private List<EventData> events;
    private List<View> list;
    private EventData e;
    private LayoutInflater inflater;
    public  boolean editMode;
    private RelativeLayout container;
    RelativeLayout parent;
     View eventView;
    private boolean mCheckFragment;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_mon, container, false);
        list = new ArrayList<View>();


        dayplanView = (ViewGroup) view.findViewById(R.id.hoursRelativeLayout);

        showEvents();


        mCheckFragment = true;


        return view;
    }

    private void createEvent(LayoutInflater inflater, ViewGroup dayplanView, int fromMinutes, int toMinutes, String title,String location,final int id) {

       eventView = inflater.inflate(R.layout.event_view, dayplanView, false);
        RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) eventView.getLayoutParams();

        container = (RelativeLayout) eventView.findViewById(R.id.container);
        TextView tvTitle = (TextView) eventView.findViewById(R.id.textViewTitle);
        list.add(eventView);


        if (tvTitle.getParent() != null)
           ((ViewGroup) tvTitle.getParent()).removeView(tvTitle);

        if(location.equals(""))
        {
            tvTitle.setText("Event : " + title);
        }
        else
        {
            tvTitle.setText("Event : " + title + " (At : " + location +")");
        }
        int distance = (toMinutes - fromMinutes);
        layoutParams.topMargin = dpToPixels(fromMinutes + 9);
        layoutParams.height = dpToPixels(distance);

        eventView.setLayoutParams(layoutParams);
        dayplanView.addView(eventView);
        container.addView(tvTitle);



        eventView.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                i = new Intent(getActivity(), AddEventActivity.class);
                editMode = true;
                i.putExtra("EditMode", editMode);
                i.putExtra("id", id);
                startActivityForResult(i, 1);

            }
        });
    }


 @Override
 public void setMenuVisibility(final boolean visible) {
     super.setMenuVisibility(visible);
     if (visible) {

         if(mCheckFragment) {
             removeView();
             showEvents();
             Toast.makeText(getActivity(), "Monday", Toast.LENGTH_SHORT).show();
         }
         // ...
     }
 }

    public void showEvents()
    {
        mDb = new EventTableHelper(getActivity());
        events = mDb.getAllEvents("Mon");

        for (EventData eventData : events) {

            int id = eventData.getId();
            String datefrom = eventData.getFromDate();

            if (datefrom != null) {
                String[] times = datefrom.substring(11, 16).split(":");
                minutesFrom = Integer.parseInt(times[0]) * 60 + Integer.parseInt(times[1]);
            }
            String title = eventData.getTitle();
            String location = eventData.getLocation();
            String dateTo = eventData.getToDate();


            if (dateTo != null) {
                //times = dateTo.substring(11,16).split(":");
                String[] times1 = dateTo.substring(11, 16).split(":");
                minutesTo = Integer.parseInt(times1[0]) * 60 + Integer.parseInt(times1[1]);
            }
            createEvent(inflater, dayplanView, minutesFrom, minutesTo, title, location, id);
            id++;


        }
    }

    public void removeView()
    {
        for(int i=0; i<list.size(); i++)
        {
            View view = (View)list.get(i);
            dayplanView.removeView(view);
        }
    }

    private int dpToPixels(int dp) {
        return (int) (dp * getResources().getDisplayMetrics().density);
    }

}
公共类Mon扩展片段{
私有框架布局晶圆厂;
私人助理mDb;
私人意图一;
私有视图组dayplanView;
私有int minutesFrom,minutesTo;
私人列表活动;
私人名单;
私有事件数据e;
私人充气机;
公共布尔编辑模式;
私有相对论容器;
相对年轻父母;
查看事件视图;
私有布尔mCheckFragment;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
充气器=(LayoutInflater)getActivity().getSystemService(Context.LAYOUT\u充气器\u SERVICE);
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图=充气机。充气(R.layout.fragment\u mon,容器,false);
列表=新的ArrayList();
dayplanView=(ViewGroup)view.findViewById(R.id.hoursRelativeLayout);
showEvents();
mCheckFragment=true;
返回视图;
}
private void createEvent(Layoutin Flater inflater、视图组dayplanView、int fromMinutes、int toMinutes、字符串标题、字符串位置、最终int id){
事件视图=充气机。充气(R.layout.event\u视图,dayplanView,false);
RelativeLayout.LayoutParams LayoutParams=(RelativeLayout.LayoutParams)eventView.getLayoutParams();
container=(RelativeLayout)eventView.findViewById(R.id.container);
TextView tvTitle=(TextView)eventView.findViewById(R.id.textViewTitle);
list.add(eventView);
if(tvTitle.getParent()!=null)
((ViewGroup)tvTitle.getParent()).removeView(tvTitle);
if(位置等于(“”)
{
tvTitle.setText(“事件:+title”);
}
其他的
{
tvTitle.setText(“事件:+title+”(在:+location+));
}
int距离=(toMinutes-fromMinutes);
layoutParams.topMargin=dpToPixels(从分钟+9开始);
layoutParams.height=dpToPixels(距离);
setLayoutParams(layoutParams);
dayplanView.addView(事件视图);
container.addView(tvTitle);
eventView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
i=新意图(getActivity(),AddEventActivity.class);
editMode=true;
i、 putExtra(“编辑模式”,编辑模式);
i、 putExtra(“id”,id);
startActivityForResult(i,1);
}
});
}
@凌驾
public void setMenuVisibility(最终布尔值可见){
超级设置可视性(可见);
如果(可见){
if(mCheckFragment){
removeView();
showEvents();
Toast.makeText(getActivity(),“Monday”,Toast.LENGTH_SHORT.show();
}
// ...
}
}
公共活动
{
mDb=新的EventTableHelper(getActivity());
事件=mDb.getAllEvents(“Mon”);
for(EventData事件数据:事件){
int id=eventData.getId();
字符串datefrom=eventData.getFromDate();
if(datefrom!=null){
String[]times=datefrom.substring(11,16).split(“:”);
minutesFrom=Integer.parseInt(乘以[0])*60+Integer.parseInt(乘以[1]);
}
字符串title=eventData.getTitle();
字符串位置=eventData.getLocation();
字符串dateTo=eventData.getToDate();
if(dateTo!=null){
//times=dateTo.substring(11,16).split(“:”);
字符串[]times1=dateTo.substring(11,16).split(“:”);
minutesTo=Integer.parseInt(times1[0])*60+Integer.parseInt(times1[1]);
}
createEvent(充气机、dayplanView、minutesFrom、minutesTo、标题、位置、id);
id++;
}
}
public void removeView()
{
对于(int i=0;i