g_zq_leaner 2019-12-26 23:13 采纳率: 0%
浏览 412

从activity返回到fragment时listview不显示

Fragment代码如下:


public class TodolistFragment extends Fragment {

    private List<Todo> todos = new ArrayList<>();
    //NotificationManager notificationManager;
    SimpleAdapter adapter;
    ListView listView;
    View view;
    Button button;
    private int uid;
    private String date;
    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        uid = ((HomePage)context).user_id;
        date = ((HomePage)context).date;
        //buttonClickListener = (OnItemButtonClickListener) context;
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        button = (Button)getActivity().findViewById(R.id.add_list);
        button.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                showDialog();
            }
        });
        LocalBroadcastManager broadcastManager = LocalBroadcastManager.getInstance(getActivity());
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction("android.intent.action.CART_BROADCAST");
        BroadcastReceiver mItemViewListClickReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                String msg = intent.getStringExtra("data");
                if("refresh".equals(msg))
                    init();
            }
        };
        broadcastManager.registerReceiver(mItemViewListClickReceiver, intentFilter);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.activity_todolist_fragment, container, false);
        init();
        listView = (ListView)view.findViewById(R.id.list);
        return view;
    }
    /*public interface OnItemButtonClickListener{
        void onItemViewClick(View v);
    }*/

    @Override
    public void onResume(){
        System.out.println("todolist onresume!");
        super.onResume();
        //init();
    }

    private void init(){
        listView = (ListView)view.findViewById(R.id.list);
        MySqliteDB mydb = new MySqliteDB(view.getContext(),"MyDB", null, 1);
        SQLiteDatabase db = mydb.getReadableDatabase();
        Cursor cursor;
        cursor = db.query("todolist",new String[]{"list_id","title","total_time","complete_time"},"user_id="+uid,null,null,null,null);
        ArrayList<Map<String, String>>  list = new ArrayList<Map<String, String>>();
        while (cursor.moveToNext()) {
            //数据存入map
            Map<String, String> map = new HashMap<String, String>();
            final int t = cursor.getInt(cursor.getColumnIndex("total_time"))-cursor.getInt(cursor.getColumnIndex("complete_time"));
            if(t > 0) {
                final int list_id = cursor.getInt(cursor.getColumnIndex("list_id"));
                map.put("title", cursor.getString(cursor.getColumnIndex("title")));
                map.put("time", t + "分钟");
                //map添加到集合list中
                list.add(map);
                listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                        Intent intent = new Intent();
                        Bundle bundle = new Bundle();
                        bundle.putInt("list_id", list_id);
                        bundle.putInt("user_id", uid);
                        bundle.putInt("time", t);
                        bundle.putString("date", date);
                        intent.putExtras(bundle);
                        intent.setClass(getActivity(), Timing.class);
                        getActivity().startActivity(intent);
                    }
                });
            }
        }
        adapter=new SimpleAdapter(getContext(),list,R.layout.todolist_item,
                new String[]{"title","time"},new int[]{R.id.todolist_title,R.id.todolist_time});
        listView.setAdapter(adapter);
    }

    private void showDialog() {
        //此处省略了
    }
}

  • 写回答

1条回答 默认 最新

  • zqbnqsdsmd 2019-12-28 01:08
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛