java - Android中如何在ActionBarActivity中显示ListFragment?

标签 java android android-fragments android-listfragment listactivity

我要添加FileChooser (← 我用这个)到我的应用程序(我的主要 Activity 扩展了 ActionBarActivity)。我试图将 FileChooser 更改为 Fragment 或 ListFragment。 因为我希望页面可以被用户选择(我使用抽屉来选择 fragment )。

我的应用程序结构如图所示:enter link description here (因为我不能在这里张贴图片)

但是如果我改成 Fragment 就不行了。 如果我更改为 ListFragment 它会起作用,但它显示在最后一个 fragment 之上,如图所示:它在上面的图片旁边(请再次单击链接,因为我不能发布这么多链接)

AndroidManifest.xml: android:minSdkVersion="11" android:targetSdkVersion="21"

我的 selectitem() 代码:

private void selectItem(int position) {        
    Fragment fragment = null;
    switch (position) {
    case 0:
        Toast.makeText(getApplicationContext(),"case 0", Toast.LENGTH_SHORT).show();
        fragment = new First();
        break;
    case 1:            
        Toast.makeText(getApplicationContext(),"case 1", Toast.LENGTH_SHORT).show();            
        fragment = new Second();
        break;          
    case 2:
        Toast.makeText(getApplicationContext(),"case 2", Toast.LENGTH_SHORT).show();
         fragment = new Third();
         break;        
    }

    FragmentManager fragmentManager = getFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.replace(R.id.content_frame, fragment);
    fragmentTransaction.addToBackStack("home");
    fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
    fragmentTransaction.commit();


    mDrawerList.setItemChecked(position, true);
    setTitle(mPlanetTitles[position]);
    mDrawerLayout.closeDrawer(mDrawerList);
}

我的问题:

  1. 如何将 FileChooser 从 ListActivity 改为 Fragment 或 ListFragment?(如果有人有其他方法,请告诉我)
  2. 如何在用户单击按钮(在 First 的布局中)后显示它并且看不到最后一个 Fragment 的布局? (如果可以改成Fragment或ListFragment)
  3. 继续2,如何将数据传输到其他 fragment ?
  4. 导入哪个更好(在 ActionBarActivity 中)? (android.app.Fragment 或 android.support.v4.app.Fragment)

感谢所有阅读我问题的人

最佳答案

我将从下到上开始。

Which is better to import (in ActionBarActivity)? (android.app.Fragment or android.support.v4.app.Fragment)

回答:都不是。这取决于您在做什么以及您希望符合的 API 级别。我倾向于使用 android.support.v4.app.Fragment 而不是标准的 android.app.fragment 但这只是偏好而已。

How can I display it after user click button(in First's layout) and will not see last Fragment's layout? (if it can change to Fragment or ListFragment) continue2 , How to Transfer data to other fragments?

答案:listfragment 是一种带有一些额外方法的 fragment 。要用 listfragment 替换标准 fragment ,您需要做同样的事情。

FragmentTransaction ft = getFragmentManager.beginTransaction;

ft.replace(containerId, new MyListFragment or Fragment)
                         .commit();

对于在 fragment 之间移动数据,最简单的方法是使用 Bundle。

Bundle data = new Bundle();
data.putInt("myInt", 1);
data.putString("myString" "hello java")
myFragment.setArguments(data);

在您的 Fragment 类中,您将像这样从包中获取数据。

Bundle data = getArguments();
int myInt = data.getInt("myInt");
String myString = data.getString("myString");

How to change FileChooser from ListActivity to Fragment or ListFragment?(If someone has other methods, please tell me)

您是在考虑在 Fragment 类中实现 FileChooser 类,还是想通过它表达什么?

我的 selectFragment 方法如下所示:

public Fragment getFragment(int pos){
    switch(pos) {
        case 1:
            return new FragmentOne();
        case 2:
            return new FragmentTwo();
        case 3:
            return new FragmentThree();
        default:
            return FragmentOne();


    }
}

关于java - Android中如何在ActionBarActivity中显示ListFragment?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25426296/

相关文章:

java - 您可以向 AssertJ assertThat 添加自定义消息吗?

java - Android对每个应用程序使用SD卡的存储限制

android - AChartEngine点大小

java - 将数据从 Activity 传递到可滑动 View fragment

java - Eclipse 不会使用声明的源文件夹导出

java - 如何在 log4j 中基于日期创建动态文件夹

java - 项目再次启动(更新)后如何保护我的数据库值?

android - Google Maps URL 在 Android 上的 Xamarin webview 中显示为空白

java - 如何在 Android 中的 AsyncTask 完成后更新 fragment ?

android - 如何将 fragment 添加到自定义抽屉导航模板?