登录后更新活动

时间:2015-03-04 09:28:40

标签: java android

我的主要活动是GridView布局,页面有12个元素。元素是ImageButton。 当用户启动应用程序时,应用程序会显示一些默认的ImageButton。

我的问题是:当用户登录时,我有另一个要添加的ImageButton列表,所以我想刷新主活动以显示所有ImageButton。

MainActivity中的一些代码:

//Default services
String mServices[] = {"1","2", "3", "4", "5", "6","7",
            "8","9","10"};

    ArrayList<String> mArrayServices = new ArrayList<String>();

        for (int i = 0; i < mServices.length; i++) {
            mArrayServices.add(i, mServices[i]);
        }


        Iterator<String> mIterator = mArrayServices.iterator();
        List<GridFragment> mGridFragments = new ArrayList<GridFragment>();
        mIterator = mArrayServices.iterator();

        int i = 0;
  while (mIterator.hasNext()) {
            ArrayList<GridItems> itmLst = new ArrayList<GridItems>();

            GridItems itm = new GridItems(0, mIterator.next());
            itmLst.add(itm);
            i = i + 1;

            if (mIterator.hasNext()) {
                GridItems itm1 = new GridItems(1, mIterator.next());
                itmLst.add(itm1);
                i = i + 1;
            }

            if (mIterator.hasNext()) {
                GridItems itm2 = new GridItems(2, mIterator.next());
                itmLst.add(itm2);
                i = i + 1;
            }

            if (mIterator.hasNext()) {
                GridItems itm3 = new GridItems(3, mIterator.next());
                itmLst.add(itm3);
                i = i + 1;
            }

            if (mIterator.hasNext()) {
                GridItems itm4 = new GridItems(4, mIterator.next());
                itmLst.add(itm4);
                i = i + 1;
            }

            if (mIterator.hasNext()) {
                GridItems itm4 = new GridItems(5, mIterator.next());
                itmLst.add(itm4);
                i = i + 1;
            }
            if (mIterator.hasNext()) {
                GridItems itm4 = new GridItems(6, mIterator.next());
                itmLst.add(itm4);
                i = i + 1;
            }
            if (mIterator.hasNext()) {
                GridItems itm4 = new GridItems(7, mIterator.next());
                itmLst.add(itm4);
                i = i + 1;
            }
            if (mIterator.hasNext()) {
                GridItems itm4 = new GridItems(8, mIterator.next());
                itmLst.add(itm4);
                i = i + 1;
            }
            if (mIterator.hasNext()) {
                GridItems itm4 = new GridItems(9, mIterator.next());
                itmLst.add(itm4);
                i = i + 1;
            }

            if (mIterator.hasNext()) {
                GridItems itm4 = new GridItems(10, mIterator.next());
                itmLst.add(itm4);
                i = i + 1;
            }
            if (mIterator.hasNext()) {
                GridItems itm4 = new GridItems(11, mIterator.next());
                itmLst.add(itm4);
                i = i + 1;
            }




            GridItems[] gp = {};
            GridItems[] gridPage = itmLst.toArray(gp);
            mGridFragments.add(new GridFragment(gridPage, MainActivity.this));
        }
        }

        mPageAd = new PagerAdapter(getSupportFragmentManager(), mGridFragments);
        mAwesomePager.setAdapter(mPageAd);

登录位于另一个Activity中,之后mServices可以更改。

例如:

  1. 用户打开应用程序,MainActivity包含10个元素。
  2. 用户执行登录,MainActivity包含15个元素。
  3. 用户执行注销,MainActivity包含10个元素。 ...
  4. 现在我不知道如何继续...我使用奥托图书馆?或其他图书馆?或者什么?

2 个答案:

答案 0 :(得分:0)

只需隐藏并显示您的额外5个元素

    imageButton.setVisibility(View.GONE);
    and
    imageButton.setVisibility(View.VISIBLE);

答案 1 :(得分:0)

更好的解决方案是使用遍布全屏的自定义对话框,并且在登录成功时的行为与登录屏幕完全相同,然后有一种回调方法可以按照您的说法进行操作

用户打开应用程序,MainActivity包含10个元素。 用户执行登录,MainActivity包含15个元素。 用户执行注销,MainActivity包含10个元素。 ...

我认为这种方法可以帮助你好运!!!!