如何使用选项卡更新滑动视图中的片段

2024-01-03

以下:我正在使用使用选项卡滑动视图 http://developer.android.com/training/implementing-navigation/lateral.html。到目前为止工作相当顺利。

问题是:我有两个片段/选项卡。每个包含一个ListView。我可以从左侧列表中删除一个项目。当我向右滑动时,我想更新列表适配器,以便显示左侧删除的项目。

I tried onSwipeListerner, TabListener, onPageChangeListener (and on Resume()在片段本身)。没有任何效果...要么该函数没有被调用,要么我没有得到片段对象。

有谁知道我如何调用我的函数Fragment当我滑动到此选项卡/片段时上课?

Thanks!


http://developer.android.com/training/basics/fragments/communicating.html#Deliver http://developer.android.com/training/basics/fragments/communicating.html#Deliver

我相信这就是您想要实现的目标。但我不认为你的行动计划是最好的。

我会在我的片段中创建一个界面,其中的项目将被删除,例如

 public class FragmentDeleteItemSharer extends Fragment{
     // Interface in Fragment
     public interface ShareDeletedItem{
          // Interface method you will call from this fragment
          public void shareItem(Object deletedItem);
     }// end interface


     // Instantiate the new Interface Callback
     ShareDeletedItem mCallback = null;

     // Override the onAttach Method
     @Override
     public void onAttach(Activity activity){
       super.onAttach(activity);

       try{ 
           // Attaches the Interface to the Activity
           // must add "implements ShareDeletedItem" in your 
           // Activity or this Exception is thrown
           mCallback = (ShareDeletedItem) activity;

       }catch(Exception ex){
           ex.printStackTrace();
       }
     }// end onAttach()


     // the method which you use to 
     // remove an item from the current fragment's listview
     // where position is from yourlistViewAdapter.getSelectedItemPosition();
     public void removeListItem(int position){
            // using the item position, get the item in your object array
            Object objectToDelete = myObjects[position];
            // pass this information to removeItemFromArray
            // a method that creates a new object array from the data
            Object [] newObjectList = removeItemFromArray(myObjects, objectToDelete);

            // Then use the interface callback to tell activity item was deleted
            mCallback.shareItem(objectToDelete);

            // Call to the method where you update the UI with the Objects
            // Are you using an arrayList? Not sure but probably have 
            // an ArrayList<Objects> myObjects, as reference above
            updateUiWithData(newObjectList);
     }

 }// end this fragment

然后在您的活动中创建一个界面

 public class MyActivity extends FragmentActivity implements ShareDeletedItem{

    // Interface Object , must attach this interface to Fragment2, when its created
    UpdateFragment2 mCallback = null;

    // You must attach this interface to your Fragment2, when its created
    // you could do so with your view pager, create a method that adds each
    // fragment to the view pager, then call a new method like                   
    // addinterface(fragmentReference)

    public interface UpdateFragment2{
           // method to call in your Fragment that shows queue of deletes
           public void addItemtoList(Object newObject);
    }

   // Interface Callback from the Fragment that deletes an item
   public void shareItem(Object deletedItem){

         // call the interface method to share the item with the Fragment2
         mCallback.addItemToList(deletedItem);
   }

 }

最后,在 Fragment2 中实现此接口

  public class Fragment2 extends Fragment implements UpdateFragment2{

     // Interface Method in charge of giving this fragment the deleted item
     public void addItemToList(Object deletedItem){
         // TODO: Add the Item to the list you currently have
         // If the mObjects array is an array list
         mObjects.add(mObjects[mObjects.length + 1], deletedItem);
     }
  }

取决于您如何使用视图寻呼机调用创建片段

try{ 
   // or however you hold reference to the fragment
  mCallBack = (UpdateFragment2) Fragment2.class; 
}catch(Exception ex){ex.printStackTrace();}

这就是它的全部。希望这可以帮助您理解接口方式是正确的方式。如果没有您的代码,这有点难以提供帮助,但这就是它的完成方式。最难的部分是当您使用视图分页器创建片段时将界面添加到片段中。祝你好运

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用选项卡更新滑动视图中的片段 的相关文章

  • 如何使用 ProGuard 将所有方法保留在类中

    我使用 ProGuard 来优化我的 Android 应用程序 然而 对于 Android 仪器测试 我需要一些 但不是全部 类来保留所有成员 我尝试了各种方法 最后一个是 keepclassmembers public class com
  • GridView 中多次调用 getView()

    我的 Activity 由包含 40 多个元素的 GridView 组成 开始活动后 用户最多可以看到 15 个项目 3 行 每行 5 个项目 我在 getView 正文中编写传递给获取 View 的 LogCat 编号 Log i get
  • Android 自定义视图不能以正确的方式处理透明度/alpha

    我正在绘制自定义视图 在此视图中 我使用两个不同的绘画和路径对象在画布上绘画 我基本上是在绘制两个重叠的形状 添加 Alpha 后 视图中重叠的部分比图像的其余部分更暗 这是不希望的 但我不知道如何解决它 这是我的代码片段 用于展示我如何在
  • Android 应用被 Google Play 拒绝

    我最近向 Google Play 商店提交了一个 Android 应用程序 但收到一条消息说我的应用程序已被拒绝 我不确定问题是什么 也找不到确切的解决方案 拒绝原因 违反了禁止行为条款 内容政策 经过定期审核后 我们确定您的应用程序支持
  • Youtube 退出全屏模式 TextView 可见性问题

    我正在全屏模式下播放视频 当我单击后退按钮时 我可以退出全屏模式 但无法显示我在全屏情况下隐藏的 TextView 要在全屏模式下隐藏 textView 我使用以下代码 Override public void onInitializati
  • 如何以编程方式断开拨出呼叫

    我使用以下代码以编程方式断开呼叫 但它不起作用 private void callDisconnect try TelephonyManager manager TelephonyManager this getSystemService
  • 尝试在模拟器上安装第二个 flutter 应用程序时出错

    我创建了一个简单的 flutter 应用程序并在 android 模拟器上运行它 效果还不错 现在我创建了另一个 当我尝试在模拟器上运行它时 我得到 Error ADB exited with exit code 1 adb failed
  • finish() 完成活动但它仍然在后台

    我有一个关于 android studio 中活动的 finish 方法的问题 我有这个简单的代码 public class MainActivity extends AppCompatActivity Override protected
  • 如何查看 Android 上的 Wi-Fi 是否已连接?

    我什至不希望我的用户尝试下载某些内容 除非他们连接了 Wi Fi 然而 我似乎只能判断是否启用了 Wi Fi 但他们仍然可以有 3G 连接 android net wifi WifiManager m WifiManager getSyst
  • 无法获取 Facebook 传入请求

    我正在尝试在我的 Facebook android 游戏应用程序中实现发送数据并接受该数据 我正在关注https developers facebook com docs android send requests notification
  • 从 TextView 中显示的数字中删除小数点[重复]

    这个问题在这里已经有答案了 对于我的简单计算器 我将结果显示在TextView 但它总是显示小数 我怎样才能删除它们 这是我的代码 public class MainActivity extends Activity implements
  • 如何以编程方式启动 ssh 服务器 android,以及如何获取连接到设备的用户名和密码

    我正在开发像这样的应用程序sshdroid 我想在 Android 操作系统上打开 ssh 连接 并且我想从电脑连接应用程序 我使用了 JSCH lib 但是这个lib用于将android连接到pc 我的要求是pc到android 任何人都
  • onClick 未在带有子项的 LinearLayout 上触发

    我有一个自定义的 LinearLayout 和一个较小的 TextView 子级 我希望能够单击 TextView 未覆盖的区域 因此我将 clickable true 和 onclicklistener 设置为 LinearLayout
  • BottomSheetDialog get Behavour 始终返回 null

    我与底部表单对话框我必须获得行为才能设置setBottomSheetCallback 来处理一些事情 As 谷歌说 https android developers googleblog com 2016 02 android suppor
  • 在为 Android 实现 Google 登录时,任务“:app:transformClassesWithDexForDebug”执行失败

    我正在尝试为 Android 实现 Google 登录 并且我正在按照以下说明进行操作 https developers google com identity sign in android start integrating https
  • 用户区域设置在第一次请求时不起作用

    我的网站运行的是 Symfony 主版本 到目前为止 我能够使用本地监听器逻辑 http symfony com doc master cookbook session locale sticky session html来自网站 由于代码
  • 安卓的限制

    我需要构建一个应用程序 该应用程序拍摄相机图像并将其上传到网络 在网络上进行一些处理并返回真 假 我在这方面遇到了一些问题 希望得到澄清 1 我的应用程序有什么方法可以知道 Android 相机捕获的图像吗 我从这里明白了什么 Androi
  • Android 自定义警报对话框中的 OnClickListener

    我是一个自学成才的初学者 感谢耐心 谢谢 在 Eclipse 中 我使用自己的 xml 文件 custom dialog 创建了一个自定义警报对话框 称为 usernamealert 如果用户尚未输入用户名 即 username lengt
  • Android ScrollView fillViewport 不工作

    我有一个简单的布局 名称位于顶部 按钮位于屏幕底部 或者超出该按钮 以防我添加更多项目 所以我使用带有 LinearLayout 的 ScrollView 如下所示
  • Android 和 Java 中绘制椭圆的区别

    在Java中由于某种原因Ellipse2D Double使用参数 height width x y 当我创建一个RectF在Android中参数是 left top right bottom 所以我对适应差异有点困惑 如果在 Java 中创

随机推荐