博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用fragment,Pad手机共用一套代码
阅读量:7024 次
发布时间:2019-06-28

本文共 7834 字,大约阅读时间需要 26 分钟。

项目代码结构:

1:MainActivity.java

package com.example.fgtest;import android.app.Activity;import android.os.Bundle;public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);            }}

layout/activity_main.xml

layout-sw600dp/activity_main.xml

 

2:实体对象Notice.java

package com.wzh.bean;public class Notice {    private String title;    private String content;        public String getTitle() {        return title;    }    public void setTitle(String title) {        this.title = title;    }    public String getContent() {        return content;    }    public void setContent(String content) {        this.content = content;    }        }

3:NoticeAdapter.java

package com.wzh.adapter;import java.util.List;import com.example.fgtest.R;import com.wzh.bean.Notice;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ArrayAdapter;import android.widget.TextView;public class NoticeAdapter extends ArrayAdapter
{ int resourceId; public NoticeAdapter(Context context, int resourceId, List
list){ super(context, resourceId, list); this.resourceId = resourceId; } @Override public View getView(int position, View convertView, ViewGroup parent) { Notice notice = getItem(position); ViewHolder viewHolder; if(convertView==null){ convertView = LayoutInflater.from(getContext()).inflate(this.resourceId, null); viewHolder = new ViewHolder(); viewHolder.tvNoticeTitle = (TextView)convertView.findViewById(R.id.tvNoticeTitle); convertView.setTag(viewHolder); }else{
viewHolder = (ViewHolder)convertView.getTag(); }      viewHolder.tvNoticeTitle.setText(notice.getTitle()); return convertView; } class ViewHolder{ TextView tvNoticeTitle; }}

fragment_notice_content.xml

4:NoticeContentActivity.java

package com.example.fgtest;import com.wzh.fragment.NoticeContentFragment;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.os.Bundle;public class NoticeContentActivity extends Activity{        @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);                setContentView(R.layout.activity_notice_content);                String title = getIntent().getStringExtra("title");        String content = getIntent().getStringExtra("content");                NoticeContentFragment noticeContentFragment = (NoticeContentFragment)                getFragmentManager().findFragmentById(R.id.fgNoticeContent);        noticeContentFragment.refreshNoticeContent(title, content);        }        public static void openActivity(Context context, String title, String content){        Intent intent = new Intent(context, NoticeContentActivity.class);        intent.putExtra("title", title);        intent.putExtra("content", content);        context.startActivity(intent);    }}

activity_notice_content.xml

5:NoticeContentFragment.java

package com.wzh.fragment;import com.example.fgtest.R;import android.app.Fragment;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;public class NoticeContentFragment extends Fragment{    View view;        @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container,            Bundle savedInstanceState) {        view = inflater.inflate(R.layout.fragment_notice_content, container, false);                return view;    }        public  void refreshNoticeContent(String title,String content){        TextView tvNoticeTitle = (TextView)view.findViewById(R.id.tvNoticeTitle);        TextView tvNoticeContent = (TextView)view.findViewById(R.id.tvNoticeContent);                tvNoticeTitle.setText(title);        tvNoticeContent.setText(content);    }}

fragment_notice_content.xml

6:NoticeTitleFragment.java

package com.wzh.fragment;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.app.Fragment;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ListView;import com.example.fgtest.NoticeContentActivity;import com.example.fgtest.R;import com.wzh.adapter.NoticeAdapter;import com.wzh.bean.Notice;public class NoticeTitleFragment extends Fragment{        NoticeAdapter noticeAdapter;    ListView lvNoticeTitle;    List
noticeList; boolean isTwoPanel = false; int curClickPosition = -1; NoticeContentFragment noitceContentFragment; @Override public void onAttach(Activity activity) { super.onAttach(activity); getNoticeTestData(); noticeAdapter = new NoticeAdapter(activity,R.layout.list_notice_title_item,noticeList); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_notice_title, container, false); lvNoticeTitle = (ListView)view.findViewById(R.id.lvNoticeTitle); lvNoticeTitle.setAdapter(noticeAdapter); lvNoticeTitle.setOnItemClickListener(itemClickListener()); return view; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); if(getActivity().findViewById(R.id.flNoticeContent)!=null){ isTwoPanel = true; noitceContentFragment = (NoticeContentFragment) getActivity().getFragmentManager().findFragmentById(R.id.fgNoticeContent); if(noticeList.size()>0){ Notice notice = noticeList.get(0); noitceContentFragment.refreshNoticeContent(notice.getTitle(), notice.getContent()); } }else{ isTwoPanel = false; } } OnItemClickListener itemClickListener(){ return new OnItemClickListener(){ @Override public void onItemClick(AdapterView
arg0, View arg1, int arg2, long arg3) { Notice notice = noticeList.get(arg2); String title = notice.getTitle(); String content = notice.getContent(); if(isTwoPanel){ if(curClickPosition!=arg2){ noitceContentFragment.refreshNoticeContent(title, content); } curClickPosition = arg2; }else{ NoticeContentActivity.openActivity(getActivity(), title, content); } } }; } void getNoticeTestData(){ noticeList = new ArrayList
(); Notice notice = new Notice(); notice.setTitle("测试标题1"); notice.setContent("测试标题内容1"); noticeList.add(notice); notice = new Notice(); notice.setTitle("测试标题2"); notice.setContent("测试标题内容2"); noticeList.add(notice); notice = new Notice(); notice.setTitle("测试标题3"); notice.setContent("测试标题内容3"); noticeList.add(notice); }}

fragment_notice_title.xml

 

转载地址:http://dssxl.baihongyu.com/

你可能感兴趣的文章
利用OpenVSwitch构建多主机Docker网络
查看>>
从算法原理,看推荐策略
查看>>
学习笔记TF060:图像语音结合,看图说话
查看>>
LibreOffice 中的六大实用扩展组件
查看>>
《Android开发进阶:从小工到专家》——第1章,第1.4节ContentProvider(外共享数据)...
查看>>
《Java EE核心框架实战》—— 2.6 动态SQL的使用
查看>>
《Hadoop MapReduce实战手册》一2.11 在HDFS中合并文件
查看>>
android中方便为fragment写入参数的FragmentArgs简介
查看>>
《Redis官方教程》-FAQ
查看>>
《树莓派Python编程入门与实战》——3.11 练习
查看>>
开启 Ubuntu 系统自动升级
查看>>
《Oracle数据库管理与维护实战》——2.3 Oracle进程
查看>>
如何在 CentOS 6/7 上移除被 Fail2ban 禁止的 IP
查看>>
图解 Git
查看>>
【双11背后的技术】内容+:打造不一样的双11
查看>>
Flink - state管理
查看>>
【经验】网格化分散式售后服务如何做?
查看>>
java Pattern和Matcher详解
查看>>
Raptor实践参考:要么错误要么求和
查看>>
《HTTP详解》三部曲
查看>>