专题1234导航

Fragment上添加Listview的问题

来源:互联网
发表时间:2017/4/19 16:01:05
责任编辑:李志喜
字体:
为了帮助网友解决“Fragment上添加Listview的问题”相关的问题,mr007通过互联网对“Fragment上添加Listview的问题”相关的解决方案进行了整理,用户详细问题包括:移动开发安卓Fragment      楼主是个非计算机专业的苦逼大四狗,毕业设计给自己挖了个坑,开发个安卓仓库管理系统点击图片看大图mr007 www.xue163.com

      想在Fragment中添加ListView,程序运行后,Fragment显示不出我想要的Listview,不知道问题出在哪里,求大牛指点点击图片看大图


这是我的Fragment代码
package echo.com.wms;


import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.SimpleAdapter;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


/**
 * Created by echo on 2017/4/17.
 */
public class InventoryManagementFragment extends Fragment{

    private String[] values = new String[] { "入库管理", "出库管理" };
    private int[] images = new int[] { R.drawable.img_putin, R.drawable.img_putout };
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_inventorymanagement, container, false);

        ListView list = (ListView)view.findViewById(R.id.listview);
        List<Map<String, Object>> listItems = new ArrayList<Map<String, Object>>();
        for (int i = 0; i < values.length; i++) {
            Map<String, Object> listItem = new HashMap<String, Object>();
            listItem.put("values", values[i]);
            listItem.put("images", images[i]);
            listItems.add(listItem);
        }
        SimpleAdapter adapter = new SimpleAdapter(getActivity(), listItems,
                R.layout.fragment_inventorymanagement, new String[] { "values", "images" },
                new int[] { R.id.text_item, R.id.image_item });
        list.setAdapter(adapter);

        return view;

    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);


    }

}





这是我的Activity代码
package echo.com.wms;

import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import com.ashokvarma.bottomnavigation.BottomNavigationBar;
import com.ashokvarma.bottomnavigation.BottomNavigationItem;


public class MenuActivity extends AppCompatActivity {
    private InventoryManagementFragment inventoryManagementFragment;
    private WarehouseInformationFragment warehouseInformationFragment;
    private UserInformationFragment userInformationFragment;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_menu);
        BottomNavigationBar bottomNavigationBar = (BottomNavigationBar) findViewById(R.id.bottom_navigation_bar);
        bottomNavigationBar.setMode(BottomNavigationBar.MODE_SHIFTING);
        bottomNavigationBar
                .setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_STATIC
                );
        bottomNavigationBar.addItem(new BottomNavigationItem(R.mipmap.ic_home_white_24dp, "库存管理").setActiveColorResource(R.color.orange))
                .addItem(new BottomNavigationItem(R.mipmap.ic_find_replace_white_24dp, "仓库信息").setActiveColorResource(R.color.green))
                .addItem(new BottomNavigationItem(R.mipmap.ic_tv_white_24dp, "用户设置").setActiveColorResource(R.color.blue))
                .setFirstSelectedPosition(0)
                .initialise();
        //设置默认页面
        setDefaultFragment();
        bottomNavigationBar.setTabSelectedListener(new BottomNavigationBar.OnTabSelectedListener() {
            @Override
            public void onTabSelected(int position) {//未选中 -> 选中
                FragmentManager fragmentManager = getSupportFragmentManager();
                FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
                hideFragments(fragmentTransaction);
                switch (position) {
                    case 0:
// 如果fg1为空,则创建一个并添加到界面上
                        if (inventoryManagementFragment == null) {
                            inventoryManagementFragment = new InventoryManagementFragment();
                            fragmentTransaction.add(R.id.layFrame,inventoryManagementFragment);
                        } else {
// 如果不为空,则直接将它显示出来
                            fragmentTransaction.show(inventoryManagementFragment);
                        }
                        break;
                    case 1:
                        if (warehouseInformationFragment == null) {
                            warehouseInformationFragment = new WarehouseInformationFragment();
                            fragmentTransaction.add(R.id.layFrame,warehouseInformationFragment);
                        } else {
                            fragmentTransaction.show(warehouseInformationFragment);
                        }
                        break;
                    case 2:
                        if (userInformationFragment == null) {
                            userInformationFragment = new UserInformationFragment();
                            fragmentTransaction.add(R.id.layFrame,userInformationFragment);
                        } else {
                            fragmentTransaction.show(userInformationFragment);
                        }
                        break;
                }
                fragmentTransaction.commit(); // 提交
            }

            @Override
            public void onTabUnselected(int position) {//选中 -> 未选中
            }

            @Override
            public void onTabReselected(int position) {//选中 -> 选中
            }
        });


    }
    private void hideFragments(FragmentTransaction fragmentTransaction) {
        if (inventoryManagementFragment != null) {
            fragmentTransaction.hide(inventoryManagementFragment);
        }
        if (warehouseInformationFragment != null) {
            fragmentTransaction.hide(warehouseInformationFragment);
        }
        if (userInformationFragment != null) {
            fragmentTransaction.hide(userInformationFragment);
        }
    }

    //设置默认的页面
    private void setDefaultFragment() {

        FragmentManager fm = getSupportFragmentManager();
        FragmentTransaction transaction = fm.beginTransaction();
        inventoryManagementFragment = new InventoryManagementFragment();
        transaction.add(R.id.layFrame,  inventoryManagementFragment);
        transaction.commit();

    }

}

        运行后的情况点击图片看大图
点击图片看大图,具体解决方案如下:
解决方案1:
把你的布局文件代码发来看看,,,,,,
解决方案2:
XML布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://pic.xue163.com/http://schemas.android.com/apk/res/android"
    xmlns:app="http://pic.xue163.com/http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://pic.xue163.com/http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ListView
        android:id="@+id/listview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />
</RelativeLayout>
解决方案3:
引用 1 楼 YXTS122的回复:
把你的布局文件代码发来看看,,,,,,

看楼下,我贴在楼下了,,,
解决方案4:
你可以先设置一个简单的layout给fragment ,先看看你的fragment有没有问题,然后再看listview的填充数据部分,
解决方案5:
引用 4 楼 逗比_海绵的回复:
你可以先设置一个简单的layout给fragment ,先看看你的fragment有没有问题,然后再看listview的填充数据部分,

之前我用另外一个xml(只有普通的button)测试过fragment显示是正常的
解决方案6:
点击图片看大图
解决方案7:
引用 6 楼 ganshenml 的回复:
点击图片看大图

所以你引用错了布局,要使用这个item的布局放进adapter中。(就是包含R.id.text_item,R.id.image_item这两个组件的layout)
解决方案8:
引用 7 楼 ganshenml的回复:
Quote: 引用 6 楼 ganshenml 的回复:

点击图片看大图

所以你引用错了布局,要使用这个item的布局放进adapter中。(就是包含R.id.text_item,R.id.image_item这两个组件的layout)

谢谢,点击图片看大图
www.xue163.com true http://www.xue163.com/588880/39215/392157802.html report 20417 Fragment上添加Listview的问题:解决方案1:把你的布局文件代码发来看看,,,,,,解决方案2:XML布局<?xml version="1.0" encoding="utf-8"?><RelativeLayout    xmlns:android="http://pic.xue163.com/http://schemas.android.com/apk/res/android"    xmlns:app="http://p...
相关信息
最近关注
首页推荐
热门图片
最新添加资讯
24小时热门资讯
精彩资讯
精彩推荐
热点推荐
真视界
精彩图片
社区精粹
关于本站 | 广告服务 | 手机版 | 商务合作 | 免责申明 | 招聘信息 | 联系我们
Copyright © 2004-2016 Xue163.com All Rights Reserved. mr007 版权所有
京ICP备10044368号-1 京公网安备11010802011102号