Java 登录后更新活动

Java 登录后更新活动,java,android,Java,Android,我的主要活动是GridView布局,页面有12个元素。元素是ImageButton。 当用户启动应用程序时,应用程序会显示一些默认的图像按钮 我的问题是:当用户登录时,我有另一个ImageButton列表要添加,所以我想刷新主活动以显示所有ImageButton main活动中的一些代码: //Default services String mServices[] = {"1","2", "3", "4", "5", "6","7", "8","9","10"};

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

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

main活动中的一些代码:

//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);
//默认服务
字符串mServices[]={“1”、“2”、“3”、“4”、“5”、“6”、“7”,
"8","9","10"};
ArrayList mArrayServices=新建ArrayList();
对于(int i=0;i
登录名在另一个活动中,之后mServices可以更改

例如:

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

  • 现在我不知道如何继续…我使用奥托图书馆?还是其他图书馆?或者什么?

    像这样隐藏并显示额外的5个元素

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

    更好的解决方案是使用自定义对话框,并将其分散在全屏上,当登录成功时,其行为与您的登录屏幕完全相同。然后有一种回调方法,您可以按照您所说的那样执行

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


    我想这个方法会帮你好运

    使用“登录”或“注销”时是否发生任何事件?嗯,只需在不使用“注销”或“登录”的情况下第一次将“所有”按钮置于相同屏幕上,检查用户是否已登录,然后设置“额外按钮可见”的可见性,否则,登录后的图像按钮由哪个条件创建?每个用户有什么不同?用户可以添加或删除这些图像按钮吗?用户每次连接到应用程序时都有相同的图像按钮?顺便说一句,你可以用几种方法。。当用户登录变量字符串mServices从10个元素更改为15个元素时,您可以使用sqLite保存每个用户或SharedReferences的按钮。@mr.icetea,但效率更高(请阅读以下内容:)