zoukankan      html  css  js  c++  java
  • fragment的实现与互相通信

       Android3.0后出来的新控件,主要是为了在平板和手机屏幕的兼容微笑




    实现效果:

                  点击Sd卡,出现SD目录下的所有文件和文件夹,点击外置Sd卡,出现外置Sd卡目录下的文件和文件夹.点击U盘,出现U盘目录下所有文件和文件夹。

    实现如上图的效果,左边点击SD卡,右边显示gridView的内容,需要定义一个主Activity,main.xml中定义好布局,如下:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >


        <LinearLayout
            android:id="@+id/root"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:orientation="vertical" 
            >
        </LinearLayout>


        <LinearLayout
            android:id="@+id/content"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:orientation="vertical" >
        </LinearLayout>
     
    </LinearLayout>

    Activity中加载方式:

    private FragmentManager manager;
    private FragmentTransaction transacion;

      manager = getFragmentManager();
    transacion = manager.beginTransaction();
    rootfragment root = new rootfragment();
    contentfragment content = new contentfragment();

    transacion.add(R.id.root, root,"root");
    transacion.add(R.id.content,content,"content");
    transacion.commit();

    接着定义左边和右边的fragment,先定义左边布局文件的内容,在rootfragment.java中进行加载,

    public class rootfragment extends Fragment{

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    return inflater.inflate(R.layout.fragment_root, null);
    }

    }

    同样的方式加载右边显示的内容,接着需要将两个fragment之间进行数据的传递:

    contentfragment details = (contentfragment)getFragmentManager().findFragmentByTag("content");

    获取到右边的fragment,通过该对象就可以将数据传递给contentfragment类,操作contentfragment里面的函数。这里需要传递文件路径给contentfragment,再让contentfragment进行刷新显示就可以了

  • 相关阅读:
    ssh-copy-id 的使用方法
    如何保证 docker daemon重启,但容器不重启
    vim设置golang语法高亮 (Centos)
    Error response from daemon: Error running DeviceCreate (createSnapDevice) dm_task_run failed
    Please supply the message using either -m or -F option.
    sudo: Sorry, you must have a tty to run sudo Error on a Linux and Unix
    vim plugins (vim 插件) 工具集
    OmniGraffle v6 注册码
    test
    Collections.addAll 为什么比collection.addall 快(转)
  • 原文地址:https://www.cnblogs.com/james1207/p/3339648.html
Copyright © 2011-2022 走看看