package com.example.dome2; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.Toolbar; import android.view.Gravity; import android.view.MenuItem; import android.view.View; import android.widget.Toast; import com.example.dome2.call.CallLogFragment; import com.example.dome2.music.MusicFragment; import com.example.dome2.net.NetFragment; import com.example.dome2.sms.SMSFragment; public class MainActivity extends AppCompatActivity { private Toolbar toolbar; private DrawerLayout drawerLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); toolbar = (Toolbar) findViewById(R.id.toolbar); drawerLayout = (DrawerLayout) findViewById(R.id.drawerlayout); toolbar.inflateMenu(R.menu.menu); //添加选项菜单到Toolbar上 toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { drawerLayout.openDrawer(Gravity.LEFT); //弹出左边的抽屉 } }); // 给Toolbar上的选项菜单添加点击事件 toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.search: Toast.makeText(MainActivity.this,"您点击了搜索按钮!!",Toast.LENGTH_LONG).show(); break; } return false; } }); // 1。获取碎片管理者 FragmentManager manager = getFragmentManager(); // 2.获取事物 FragmentTransaction transaction = manager.beginTransaction(); // 3.替换布局为需要的Fragment对象 transaction.replace(R.id.layout,new CallLogFragment()); transaction.commit(); //提交事物 } // 把Fragment加载到Activity当中的方法,动态加载法 public void onClick(View view) { switch (view.getId()) { case R.id.btn_call: // 1。获取碎片管理者 FragmentManager manager = getFragmentManager(); // 2.获取事物 FragmentTransaction transaction = manager.beginTransaction(); // 3. transaction.replace(R.id.layout,new CallLogFragment()); transaction.commit(); // 关闭抽屉 drawerLayout.closeDrawers(); break; case R.id.btn_sms: FragmentManager manager1 = getFragmentManager(); FragmentTransaction transaction1 = manager1.beginTransaction(); transaction1.replace(R.id.layout,new SMSFragment()); transaction1.commit(); // 关闭抽屉 drawerLayout.closeDrawers(); break; case R.id.btn_music: FragmentManager manager2 = getFragmentManager(); FragmentTransaction transaction2 = manager2.beginTransaction(); transaction2.replace(R.id.layout,new MusicFragment()); transaction2.commit(); // 关闭抽屉 drawerLayout.closeDrawers(); break; case R.id.btn_net: FragmentManager manager3 = getFragmentManager(); FragmentTransaction transaction3 = manager3.beginTransaction(); transaction3.replace(R.id.layout,new NetFragment()); transaction3.commit(); drawerLayout.closeDrawers(); break; } } }
package com.example.dome2.call; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.example.dome2.R; import java.util.List; /** * Created by Administrator on 2018/4/3. */ public class CallAdapter extends RecyclerView.Adapter<CallAdapter.CallViewHolder>{ private Context context; private List<CallLogBean>mDatas; public CallAdapter(Context context, List<CallLogBean> mDatas) { this.context = context; this.mDatas = mDatas; } @Override public CallViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.item_call_log, parent, false); CallViewHolder holder = new CallViewHolder(view); return holder; } @Override public void onBindViewHolder(CallViewHolder holder, int position) { CallLogBean logBean = mDatas.get(position); holder.idTv.setText("编号:"+logBean.getId()); holder.numberTv.setText("电话号码:"+logBean.getNumber()); holder.timeTv.setText("持续时间:"+logBean.getTime()+"秒"); } @Override public int getItemCount() { return mDatas.size(); } class CallViewHolder extends RecyclerView.ViewHolder{ TextView idTv,numberTv,timeTv; public CallViewHolder(View itemView) { super(itemView); idTv = (TextView) itemView.findViewById(R.id.item_call_id); numberTv = (TextView) itemView.findViewById(R.id.item_call_number); timeTv = (TextView) itemView.findViewById(R.id.item_call_time); } } }
package com.example.dome2.call; /** * Created by Administrator on 2018/4/3. */ public class CallLogBean { String id; String number; String time; public CallLogBean() { } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } public String getTime() { return time; } public void setTime(String time) { this.time = time; } public CallLogBean(String id, String number, String time) { this.id = id; this.number = number; this.time = time; } }
package com.example.dome2.call; import android.app.Fragment; import android.content.ContentResolver; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.provider.CallLog; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.example.dome2.R; import java.util.ArrayList; import java.util.List; /** * A simple {@link Fragment} subclass. */ public class CallLogFragment extends Fragment { RecyclerView rv ; List<CallLogBean>mDatas = new ArrayList<>(); //数据源 private CallAdapter adapter; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_call_log, container, false); rv = (RecyclerView) view.findViewById(R.id.call_rv); // 1.设置布局管理者 LinearLayoutManager manager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false); rv.setLayoutManager(manager); // 2.数据源 // 3.设置适配器 adapter = new CallAdapter(getActivity(),mDatas); rv.setAdapter(adapter); // 4.获取本地通话记录 loadData(); return view; } //获取本地通话记录 添加权限 Call_log private void loadData() { // 1.权限 该版本22 // 2.获取ContentResolver对象 ContentResolver resolver = getActivity().getContentResolver(); // 3.获取Uri地址 Uri callUri = CallLog.Calls.CONTENT_URI; // 4.开始执行查询的过程 Cursor cursor = resolver.query(callUri, null, null, null, null); // 5.遍历Cursor信息 while (cursor.moveToNext()) { String id = cursor.getString(cursor.getColumnIndex("_id")); String number = cursor.getString(cursor.getColumnIndex("number")); String time = cursor.getString(cursor.getColumnIndex("duration")); CallLogBean bean = new CallLogBean(id, number, time); // 添加对象到集合当中 mDatas.add(bean); } // 数据源发生变化,提示adapter更新 adapter.notifyDataSetChanged(); } }
package com.example.dome2.music; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.example.dome2.R; import java.util.List; /** * Created by Administrator on 2018/4/4. */ public class MusicAdapter extends RecyclerView.Adapter<MusicAdapter.MusicViewHolder>{ private Context context; private List<MusicBean>mDatas; public MusicAdapter(Context context, List<MusicBean> mDatas) { this.context = context; this.mDatas = mDatas; } @Override public MusicViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.item_music, parent, false); MusicViewHolder holder = new MusicViewHolder(view); return holder; } @Override public void onBindViewHolder(MusicViewHolder holder, int position) { MusicBean musicBean = mDatas.get(position); holder.idTv.setText(musicBean.getId()); holder.nameTv.setText(musicBean.getName()); holder.timeTv.setText(musicBean.getDuration()); holder.singerTv.setText(musicBean.getSinger()); holder.albumTv.setText(musicBean.getAlbum()); } @Override public int getItemCount() { return mDatas.size(); } class MusicViewHolder extends RecyclerView.ViewHolder{ TextView idTv,nameTv,singerTv,albumTv,timeTv; public MusicViewHolder(View itemView) { super(itemView); idTv = (TextView) itemView.findViewById(R.id.item_music_id); nameTv = (TextView) itemView.findViewById(R.id.item_music_name); singerTv = (TextView) itemView.findViewById(R.id.item_music_singer); albumTv = (TextView) itemView.findViewById(R.id.item_music_album); timeTv = (TextView) itemView.findViewById(R.id.item_music_time); } } }
package com.example.dome2.music; /** * Created by Administrator on 2018/4/4. */ public class MusicBean { String id; String name; String singer; String album; //专辑名称 String duration; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSinger() { return singer; } public void setSinger(String singer) { this.singer = singer; } public String getAlbum() { return album; } public void setAlbum(String album) { this.album = album; } public String getDuration() { return duration; } public void setDuration(String duration) { this.duration = duration; } public MusicBean() { } public MusicBean(String id, String name, String singer, String album, String duration) { this.id = id; this.name = name; this.singer = singer; this.album = album; this.duration = duration; } }
package com.example.dome2.music; import android.content.ContentResolver; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; import android.support.annotation.Nullable; import android.app.Fragment; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.example.dome2.R; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; public class MusicFragment extends Fragment { RecyclerView rv; // 数据源 List<MusicBean>mDatas = new ArrayList<>(); private MusicAdapter adapter; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_music,container,false); rv = (RecyclerView) view.findViewById(R.id.music_rv); // 布局管理者 LinearLayoutManager manager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false); rv.setLayoutManager(manager); // 数据源 // 设置适配器 adapter = new MusicAdapter(getActivity(),mDatas); rv.setAdapter(adapter); // 获取本地数据 loadData(); return view; } // 获取本地多媒体音乐数据 private void loadData() { // 1.添加权限,改版本号22 读取sd卡的权限 // 2.获取到ContentResolver对象 ContentResolver resolver = getActivity().getContentResolver(); // 3.获取到对应的Uri地址 Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; // 4.查询指定uri当中的数据 Cursor cursor = resolver.query(uri, null, null, null, null); // 5.遍历Cursor int id = 1; while (cursor.moveToNext()) { String name = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME)); String singer = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)); String album = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM)); long l = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION)); SimpleDateFormat dateFormat = new SimpleDateFormat("mm:ss"); String time = dateFormat.format(new Date(l)); String idStr = ""+id; //编号 id++; MusicBean bean = new MusicBean(idStr, name, singer, album, time); mDatas.add(bean); } // 数据源发生变化,提示适配器更新数据 adapter.notifyDataSetChanged(); } }
package com.example.dome2.net; import java.io.IOException; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; /** * Created by Administrator on 2018/4/4. */ public class HttpUtils { public static String getStringContent(String path){ OkHttpClient client = new OkHttpClient(); //客户端对象 // 获得请求对象 Request request = new Request.Builder().get().url(path).build(); try { // 发起请求,获取响应对象 Response response = client.newCall(request).execute(); if (response.isSuccessful()) { String s = response.body().string(); return s; } } catch (IOException e) { e.printStackTrace(); } return null; } }
package com.example.dome2.net; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.example.dome2.R; import com.squareup.picasso.Picasso; import java.util.List; /** * Created by Administrator on 2018/4/4. */ public class NetAdapter extends RecyclerView.Adapter<NetAdapter.NetViewHolder>{ private Context context; private List<NetBean.ArticleListBean>mDatas; public NetAdapter(Context context, List<NetBean.ArticleListBean> mDatas) { this.context = context; this.mDatas = mDatas; } @Override public NetViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.item_net, parent, false); NetViewHolder holder = new NetViewHolder(view); return holder; } @Override public void onBindViewHolder(NetViewHolder holder, int position) { NetBean.ArticleListBean bean = mDatas.get(position); holder.tv.setText(bean.getTitle()); // 显示图片 Picasso.with(context).load(bean.getImgUrl()).into(holder.iv); } @Override public int getItemCount() { return mDatas.size(); } class NetViewHolder extends RecyclerView.ViewHolder{ ImageView iv; TextView tv; public NetViewHolder(View itemView) { super(itemView); iv = (ImageView) itemView.findViewById(R.id.item_net_iv); tv = (TextView) itemView.findViewById(R.id.item_net_tv); } } }
package com.example.dome2.net; import java.util.List; /** * Created by Administrator on 2018/4/4. */ public class NetBean { /** * topicRecommendList : [{"headImgUrl":"http://img.moviebase.cn/img/trecommend/2017/10/6629de7abce84b56b916366bc07576c0.jpg@480w","imgUrl":"http://img.moviebase.cn/img/topic/2017/09/b9add2d4aa2d448aa260664e4401a6ba.jpg@!2x.webp","id":"44e9ea47bbd8401590d9a8ae3a3b283b","title":"北美新片","desc":"来自米国院线的最新票房和口碑","isSub":"0","recommendImgUrl":"http://img.moviebase.cn/img/trecommend/2017/10/6629de7abce84b56b916366bc07576c0.jpg@484w","isSubscribe":0,"subscribeNum":2616,"articlesNum":58},{"headImgUrl":"http://img.moviebase.cn/img/topic/2016/10/3a5198f10d074955884995f884ff9403.jpeg@480w","imgUrl":"http://img.moviebase.cn/img/topic/2016/10/6b51c0dbd39641bb90f4058388b24cde.jpeg@!2x.webp","id":"7d99c3dbe09c4d7a94a21708f5db127c","title":"行业观察","desc":"追踪影视热点,揭秘行业内幕","isSub":"0","recommendImgUrl":"http://img.moviebase.cn/img/topic/2016/10/3a5198f10d074955884995f884ff9403.jpeg@484w","isSubscribe":0,"subscribeNum":2809,"articlesNum":582},{"headImgUrl":"http://img.moviebase.cn/img/trecommend/2017/09/93c41c4244c34fa1bc5ce64e3d7c7b36.jpg@480w","imgUrl":"http://img.moviebase.cn/img/topic/2017/09/cf778b9124b24a85ad9ee69d11100618.jpg@!2x.webp","id":"78cc04335e034788a729a4145ff23a97","title":"热映快评","desc":"影院新片,你怎么看?","isSub":"0","recommendImgUrl":"http://img.moviebase.cn/img/trecommend/2017/09/93c41c4244c34fa1bc5ce64e3d7c7b36.jpg@484w","isSubscribe":0,"subscribeNum":2700,"articlesNum":86}] * retCode : 0 * topicSubscribeUpdateNum : 0 * topicSubscribeUpdateList : * requestId : db060f2c-9921-4f39-bece-18dfde06f998 * retMsg : * authorList : [{"id":"0185e0a334e54866bcc423322c02e217","logo":"http://img.moviebase.cn/img/other/2017/09/79174c2dabc94f89983488c09de74e78.jpg@130w","nickname":"手动贩卖机","description":"人不如机器。"},{"id":"4d9e800196cc42b192cec8b914b035f6","logo":"http://img.moviebase.cn/img/other/2017/09/4184a1ba3b12440f86ef6d5ae4cce9aa.jpg@130w","nickname":"坨坨肉","description":"情色电影/Cult片爱好者"},{"id":"6560d69aafc54d45be991b067afca113","logo":"http://img.moviebase.cn/img/other/2017/08/144ad6ffe4bb4d1e940d6291c029aca2.png@130w","nickname":"咸鱼","description":"冷却了CD残了血,在你面前浪来浪去"}] * sourceList : [{"id":"19f2cd89ca904eb69e51f7d6e8a1e679","logo":"http://img.moviebase.cn/img/source/2018/02/c526cc8be95944399a68197c778ee1ab.png@130w","nickname":"巴塞电影","description":"资深电影编辑团队每日为你更新最有品、有料、原创、独家的电影资讯和深度解读。公众号:MovieBase"},{"id":"1700d5e8ba284c30bb4474882d10be8f","logo":"http://img.moviebase.cn/img/source/2018/02/ac0e844d31884a29a289b0e00bf2018b.gif","nickname":"枪稿","description":""},{"id":"3bad3b5588af4002a44383453cc2d862","logo":"http://img.moviebase.cn/img/source/2016/02/b0571f61b1a44fb88d83165299adc3d7.jpeg@130w","nickname":"库布里克的小丑","description":"与其赏析电影,不如享受电影。坚持原创,有时很正经,有时很邪恶~"}] * articleList : [{"imgUrl":"http://img.moviebase.cn/img/poster/2018/03/bc1df537a3a540228075e050bb20668c.jpg@353w","id":"0677ba5d32d34ed09c66b5bf8c699edb","articleContentUrl":"http://www.moviebase.cn/uread/app/viewArt/viewArt-0677ba5d32d34ed09c66b5bf8c699edb.html?appVersion=1.7.0","pubDate":1520931197,"praiseCount":"54","title":"人间是否已耳聋?20年后,再听1998华语流行神曲","description":"","sourceName":"巴塞电影","image":"http://img.moviebase.cn/img/poster/2018/03/bc1df537a3a540228075e050bb20668c.jpg@353w","careateDate":1520913387,"articleUrl":"http://www.moviebase.cn/uread/app/viewArt/viewArt-0677ba5d32d34ed09c66b5bf8c699edb.html?appVersion=1.7.0","sourceId":"19f2cd89ca904eb69e51f7d6e8a1e679"},{"imgUrl":"http://img.moviebase.cn/img/poster/2018/03/ee7507cd3f304cbe9a8a494b8e54c1a9.jpg@353w","id":"5c0c74ee-9862-40d1-8a40-519dfa2ce338","articleContentUrl":"http://www.moviebase.cn/uread/app/viewArt/viewArt-5c0c74ee-9862-40d1-8a40-519dfa2ce338.html?appVersion=1.7.0","pubDate":1521000001,"praiseCount":"50","title":"如果你一生只和一个人做过爱......","description":"","sourceName":"巴塞电影","image":"http://img.moviebase.cn/img/poster/2018/03/ee7507cd3f304cbe9a8a494b8e54c1a9.jpg@353w","careateDate":1520994795,"articleUrl":"http://www.moviebase.cn/uread/app/viewArt/viewArt-5c0c74ee-9862-40d1-8a40-519dfa2ce338.html?appVersion=1.7.0","sourceId":"19f2cd89ca904eb69e51f7d6e8a1e679"},{"imgUrl":"http://img.moviebase.cn/img/poster/2018/03/84448f30aa8242e58502acd20c860adf.jpeg@353w","id":"7843f1d8917c42d9a227e9aab6a156eb","articleContentUrl":"http://www.moviebase.cn/uread/app/viewArt/viewArt-7843f1d8917c42d9a227e9aab6a156eb.html?appVersion=1.7.0","pubDate":1521101366,"praiseCount":"31","title":"《水形物语》上映了,打卡必备指南了解一下?","description":"","sourceName":"巴塞电影","image":"http://img.moviebase.cn/img/poster/2018/03/84448f30aa8242e58502acd20c860adf.jpeg@353w","careateDate":1521081695,"articleUrl":"http://www.moviebase.cn/uread/app/viewArt/viewArt-7843f1d8917c42d9a227e9aab6a156eb.html?appVersion=1.7.0","sourceId":"19f2cd89ca904eb69e51f7d6e8a1e679"},{"imgUrl":"http://img.moviebase.cn/img/poster/2018/03/4876b3446c1545b98e6328a215839684.png@353w","id":"04dc6b7b3c9d4aad96d3c01859e5fcc9","articleContentUrl":"http://www.moviebase.cn/uread/app/viewArt/viewArt-04dc6b7b3c9d4aad96d3c01859e5fcc9.html?appVersion=1.7.0","pubDate":1521111125,"praiseCount":"30","title":"《雷神3》的逗比导演,不做\u201c石头\u201d做\u201c兔纸\u201d","description":"","sourceName":"巴塞电影","image":"http://img.moviebase.cn/img/poster/2018/03/4876b3446c1545b98e6328a215839684.png@353w","careateDate":1521096947,"articleUrl":"http://www.moviebase.cn/uread/app/viewArt/viewArt-04dc6b7b3c9d4aad96d3c01859e5fcc9.html?appVersion=1.7.0","sourceId":"19f2cd89ca904eb69e51f7d6e8a1e679"},{"imgUrl":"http://img.moviebase.cn/img/poster/2018/03/b2d5e7208e8b4d7e8792c4b4b895adc6.jpeg@353w","id":"0509889d41cb4d88b10428d3bc128614","articleContentUrl":"http://www.moviebase.cn/uread/app/viewArt/viewArt-0509889d41cb4d88b10428d3bc128614.html?appVersion=1.7.0","pubDate":1521127450,"praiseCount":"38","title":"《大小谎言》卡司薪水大涨,好莱坞男女薪资平等的时代也许即将到来","description":"","sourceName":"巴塞电影","image":"http://img.moviebase.cn/img/poster/2018/03/b2d5e7208e8b4d7e8792c4b4b895adc6.jpeg@353w","careateDate":1521109421,"articleUrl":"http://www.moviebase.cn/uread/app/viewArt/viewArt-0509889d41cb4d88b10428d3bc128614.html?appVersion=1.7.0","sourceId":"19f2cd89ca904eb69e51f7d6e8a1e679"},{"imgUrl":"http://img.moviebase.cn/img/poster/2018/03/62c76e3adf3540438cc34740591ece32.jpg@353w","id":"385695a8-4f79-435c-af72-89d42f6212ee","articleContentUrl":"http://www.moviebase.cn/uread/app/viewArt/viewArt-385695a8-4f79-435c-af72-89d42f6212ee.html?appVersion=1.7.0","pubDate":1521190800,"praiseCount":"35","title":"大型运动色情片,普京主演","description":"","sourceName":"巴塞电影","image":"http://img.moviebase.cn/img/poster/2018/03/62c76e3adf3540438cc34740591ece32.jpg@353w","careateDate":1521143137,"articleUrl":"http://www.moviebase.cn/uread/app/viewArt/viewArt-385695a8-4f79-435c-af72-89d42f6212ee.html?appVersion=1.7.0","sourceId":"19f2cd89ca904eb69e51f7d6e8a1e679"},{"imgUrl":"http://img.moviebase.cn/img/poster/2018/03/219d22e0258949fda1c4f4d466cdaeb7.png@353w","id":"e08f3ac320014e51ae6b12f21bfb3ff7","articleContentUrl":"http://www.moviebase.cn/uread/app/viewArt/viewArt-e08f3ac320014e51ae6b12f21bfb3ff7.html?appVersion=1.7.0","pubDate":1521086401,"praiseCount":"39","title":"这部韩国喜剧全程高能,看的时候千万别喝水","description":"","sourceName":"巴塞电影","image":"http://img.moviebase.cn/img/poster/2018/03/219d22e0258949fda1c4f4d466cdaeb7.png@353w","careateDate":1521019162,"articleUrl":"http://www.moviebase.cn/uread/app/viewArt/viewArt-e08f3ac320014e51ae6b12f21bfb3ff7.html?appVersion=1.7.0","sourceId":"19f2cd89ca904eb69e51f7d6e8a1e679"},{"imgUrl":"http://img.moviebase.cn/img/poster/2018/03/369befac36c44ddaa1b1172136fcfe33.gif","id":"462a4b4a07244e05a91b8acabf9afd15","articleContentUrl":"http://www.moviebase.cn/uread/app/viewArt/viewArt-462a4b4a07244e05a91b8acabf9afd15.html?appVersion=1.7.0","pubDate":1521127443,"praiseCount":"54","title":"有流量就能拍电影?小花们的电影谁来买单?","description":"","sourceName":"巴塞电影","image":"http://img.moviebase.cn/img/poster/2018/03/369befac36c44ddaa1b1172136fcfe33.gif","careateDate":1521107453,"articleUrl":"http://www.moviebase.cn/uread/app/viewArt/viewArt-462a4b4a07244e05a91b8acabf9afd15.html?appVersion=1.7.0","sourceId":"19f2cd89ca904eb69e51f7d6e8a1e679"},{"imgUrl":"http://img.moviebase.cn/img/poster/2018/03/4ad6ebf78ab14143a959da3fb2df861c.png@353w","id":"1e0ca36fc43745f3a186d6cdf60f74ac","articleContentUrl":"http://www.moviebase.cn/uread/app/viewArt/viewArt-1e0ca36fc43745f3a186d6cdf60f74ac.html?appVersion=1.7.0","pubDate":1521172801,"praiseCount":"46","title":"让你们看看即将上映的《犬之岛》鲜血淋漓的原型","description":"","sourceName":"巴塞电影","image":"http://img.moviebase.cn/img/poster/2018/03/4ad6ebf78ab14143a959da3fb2df861c.png@353w","careateDate":1521108941,"articleUrl":"http://www.moviebase.cn/uread/app/viewArt/viewArt-1e0ca36fc43745f3a186d6cdf60f74ac.html?appVersion=1.7.0","sourceId":"19f2cd89ca904eb69e51f7d6e8a1e679"},{"imgUrl":"http://img.moviebase.cn/img/poster/2018/03/e2778b7170bc435bb0683205d1637c98.gif","id":"21846954b0c4437bbbd4bbb692d53f7a","articleContentUrl":"http://www.moviebase.cn/uread/app/viewArt/viewArt-21846954b0c4437bbbd4bbb692d53f7a.html?appVersion=1.7.0","pubDate":1521277202,"praiseCount":"55","title":"每周只能做7秒!101分钟的动画就这么硬肝出来的","description":"","sourceName":"巴塞电影","image":"http://img.moviebase.cn/img/poster/2018/03/e2778b7170bc435bb0683205d1637c98.gif","careateDate":1521197851,"articleUrl":"http://www.moviebase.cn/uread/app/viewArt/viewArt-21846954b0c4437bbbd4bbb692d53f7a.html?appVersion=1.7.0","sourceId":"19f2cd89ca904eb69e51f7d6e8a1e679"}] * articleSubscribeUpdateNum : 0 */ private int retCode; private int topicSubscribeUpdateNum; private String topicSubscribeUpdateList; private String requestId; private String retMsg; private int articleSubscribeUpdateNum; private List<TopicRecommendListBean> topicRecommendList; private List<AuthorListBean> authorList; private List<SourceListBean> sourceList; private List<ArticleListBean> articleList; public int getRetCode() { return retCode; } public void setRetCode(int retCode) { this.retCode = retCode; } public int getTopicSubscribeUpdateNum() { return topicSubscribeUpdateNum; } public void setTopicSubscribeUpdateNum(int topicSubscribeUpdateNum) { this.topicSubscribeUpdateNum = topicSubscribeUpdateNum; } public String getTopicSubscribeUpdateList() { return topicSubscribeUpdateList; } public void setTopicSubscribeUpdateList(String topicSubscribeUpdateList) { this.topicSubscribeUpdateList = topicSubscribeUpdateList; } public String getRequestId() { return requestId; } public void setRequestId(String requestId) { this.requestId = requestId; } public String getRetMsg() { return retMsg; } public void setRetMsg(String retMsg) { this.retMsg = retMsg; } public int getArticleSubscribeUpdateNum() { return articleSubscribeUpdateNum; } public void setArticleSubscribeUpdateNum(int articleSubscribeUpdateNum) { this.articleSubscribeUpdateNum = articleSubscribeUpdateNum; } public List<TopicRecommendListBean> getTopicRecommendList() { return topicRecommendList; } public void setTopicRecommendList(List<TopicRecommendListBean> topicRecommendList) { this.topicRecommendList = topicRecommendList; } public List<AuthorListBean> getAuthorList() { return authorList; } public void setAuthorList(List<AuthorListBean> authorList) { this.authorList = authorList; } public List<SourceListBean> getSourceList() { return sourceList; } public void setSourceList(List<SourceListBean> sourceList) { this.sourceList = sourceList; } public List<ArticleListBean> getArticleList() { return articleList; } public void setArticleList(List<ArticleListBean> articleList) { this.articleList = articleList; } public static class TopicRecommendListBean { /** * headImgUrl : http://img.moviebase.cn/img/trecommend/2017/10/6629de7abce84b56b916366bc07576c0.jpg@480w * imgUrl : http://img.moviebase.cn/img/topic/2017/09/b9add2d4aa2d448aa260664e4401a6ba.jpg@!2x.webp * id : 44e9ea47bbd8401590d9a8ae3a3b283b * title : 北美新片 * desc : 来自米国院线的最新票房和口碑 * isSub : 0 * recommendImgUrl : http://img.moviebase.cn/img/trecommend/2017/10/6629de7abce84b56b916366bc07576c0.jpg@484w * isSubscribe : 0 * subscribeNum : 2616 * articlesNum : 58 */ private String headImgUrl; private String imgUrl; private String id; private String title; private String desc; private String isSub; private String recommendImgUrl; private int isSubscribe; private int subscribeNum; private int articlesNum; public String getHeadImgUrl() { return headImgUrl; } public void setHeadImgUrl(String headImgUrl) { this.headImgUrl = headImgUrl; } public String getImgUrl() { return imgUrl; } public void setImgUrl(String imgUrl) { this.imgUrl = imgUrl; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } public String getIsSub() { return isSub; } public void setIsSub(String isSub) { this.isSub = isSub; } public String getRecommendImgUrl() { return recommendImgUrl; } public void setRecommendImgUrl(String recommendImgUrl) { this.recommendImgUrl = recommendImgUrl; } public int getIsSubscribe() { return isSubscribe; } public void setIsSubscribe(int isSubscribe) { this.isSubscribe = isSubscribe; } public int getSubscribeNum() { return subscribeNum; } public void setSubscribeNum(int subscribeNum) { this.subscribeNum = subscribeNum; } public int getArticlesNum() { return articlesNum; } public void setArticlesNum(int articlesNum) { this.articlesNum = articlesNum; } } public static class AuthorListBean { /** * id : 0185e0a334e54866bcc423322c02e217 * logo : http://img.moviebase.cn/img/other/2017/09/79174c2dabc94f89983488c09de74e78.jpg@130w * nickname : 手动贩卖机 * description : 人不如机器。 */ private String id; private String logo; private String nickname; private String description; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getLogo() { return logo; } public void setLogo(String logo) { this.logo = logo; } public String getNickname() { return nickname; } public void setNickname(String nickname) { this.nickname = nickname; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } } public static class SourceListBean { /** * id : 19f2cd89ca904eb69e51f7d6e8a1e679 * logo : http://img.moviebase.cn/img/source/2018/02/c526cc8be95944399a68197c778ee1ab.png@130w * nickname : 巴塞电影 * description : 资深电影编辑团队每日为你更新最有品、有料、原创、独家的电影资讯和深度解读。公众号:MovieBase */ private String id; private String logo; private String nickname; private String description; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getLogo() { return logo; } public void setLogo(String logo) { this.logo = logo; } public String getNickname() { return nickname; } public void setNickname(String nickname) { this.nickname = nickname; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } } public static class ArticleListBean { /** * imgUrl : http://img.moviebase.cn/img/poster/2018/03/bc1df537a3a540228075e050bb20668c.jpg@353w * id : 0677ba5d32d34ed09c66b5bf8c699edb * articleContentUrl : http://www.moviebase.cn/uread/app/viewArt/viewArt-0677ba5d32d34ed09c66b5bf8c699edb.html?appVersion=1.7.0 * pubDate : 1520931197 * praiseCount : 54 * title : 人间是否已耳聋?20年后,再听1998华语流行神曲 * description : * sourceName : 巴塞电影 * image : http://img.moviebase.cn/img/poster/2018/03/bc1df537a3a540228075e050bb20668c.jpg@353w * careateDate : 1520913387 * articleUrl : http://www.moviebase.cn/uread/app/viewArt/viewArt-0677ba5d32d34ed09c66b5bf8c699edb.html?appVersion=1.7.0 * sourceId : 19f2cd89ca904eb69e51f7d6e8a1e679 */ private String imgUrl; private String id; private String articleContentUrl; private int pubDate; private String praiseCount; private String title; private String description; private String sourceName; private String image; private int careateDate; private String articleUrl; private String sourceId; public String getImgUrl() { return imgUrl; } public void setImgUrl(String imgUrl) { this.imgUrl = imgUrl; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getArticleContentUrl() { return articleContentUrl; } public void setArticleContentUrl(String articleContentUrl) { this.articleContentUrl = articleContentUrl; } public int getPubDate() { return pubDate; } public void setPubDate(int pubDate) { this.pubDate = pubDate; } public String getPraiseCount() { return praiseCount; } public void setPraiseCount(String praiseCount) { this.praiseCount = praiseCount; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getSourceName() { return sourceName; } public void setSourceName(String sourceName) { this.sourceName = sourceName; } public String getImage() { return image; } public void setImage(String image) { this.image = image; } public int getCareateDate() { return careateDate; } public void setCareateDate(int careateDate) { this.careateDate = careateDate; } public String getArticleUrl() { return articleUrl; } public void setArticleUrl(String articleUrl) { this.articleUrl = articleUrl; } public String getSourceId() { return sourceId; } public void setSourceId(String sourceId) { this.sourceId = sourceId; } } }
package com.example.dome2.net; import android.os.AsyncTask; import android.os.Bundle; import android.app.Fragment; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.example.dome2.R; import com.google.gson.Gson; import java.util.ArrayList; import java.util.List; /** * A simple {@link Fragment} subclass. */ public class NetFragment extends Fragment { RecyclerView rv; List<NetBean.ArticleListBean> mDatas = new ArrayList<>(); private NetAdapter adapter; String url = "http://www.moviebase.cn/uread/app/category/categoryList?platform=2&deviceId=A8C73E0D1ED1A2BED491C9238C8FD8A0&channelId=1003&appVersion=1.7.0"; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_net, container, false); rv = (RecyclerView) view.findViewById(R.id.net_rv); // 布局管理者 LinearLayoutManager manager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false); rv.setLayoutManager(manager); // 数据源 // 适配器 adapter = new NetAdapter(getActivity(),mDatas); rv.setAdapter(adapter); // 加载网络数据 loadWebData(); return view; } private void loadWebData() { new AsyncTask<Void,Void,String>(){ @Override protected String doInBackground(Void... voids) { String content = HttpUtils.getStringContent(url); return content; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); if (s!=null&&!s.isEmpty()) { Gson gson = new Gson(); NetBean netBean = gson.fromJson(s, NetBean.class); List<NetBean.ArticleListBean> list = netBean.getArticleList(); mDatas.addAll(list); adapter.notifyDataSetChanged(); } } }.execute(); } }
package com.example.dome2.sms; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.example.dome2.R; import java.util.List; /** * Created by Administrator on 2018/4/3. */ public class SMSAdapter extends RecyclerView.Adapter<SMSAdapter.SMSViewHolder>{ private Context context; private List<SMSBean>mDatas; public SMSAdapter(Context context, List<SMSBean> mDatas) { this.context = context; this.mDatas = mDatas; } @Override public SMSViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.item_sms, parent, false); SMSViewHolder holder = new SMSViewHolder(view); return holder; } @Override public void onBindViewHolder(SMSViewHolder holder, int position) { SMSBean smsBean = mDatas.get(position); holder.typeTv.setText(smsBean.getType()); holder.numberTv.setText("电话:"+smsBean.getNumber()); holder.bodyTv.setText(smsBean.getBody()); holder.timeTv.setText(smsBean.getTime()); } @Override public int getItemCount() { return mDatas.size(); } class SMSViewHolder extends RecyclerView.ViewHolder{ TextView typeTv,numberTv,bodyTv,timeTv; public SMSViewHolder(View itemView) { super(itemView); typeTv = (TextView) itemView.findViewById(R.id.item_sms_type); numberTv = (TextView) itemView.findViewById(R.id.item_sms_number); bodyTv = (TextView) itemView.findViewById(R.id.item_sms_body); timeTv = (TextView) itemView.findViewById(R.id.item_sms_time); } } }
package com.example.dome2.sms; /** * Created by Administrator on 2018/4/3. */ public class SMSBean { String type; String number; String body; String time; public String getType() { return type; } public void setType(String type) { this.type = type; } public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } public String getBody() { return body; } public void setBody(String body) { this.body = body; } public String getTime() { return time; } public void setTime(String time) { this.time = time; } public SMSBean() { } public SMSBean(String type, String number, String body, String time) { this.type = type; this.number = number; this.body = body; this.time = time; } }
package com.example.dome2.sms; import android.app.Fragment; import android.content.ContentResolver; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.example.dome2.R; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * A simple {@link Fragment} subclass. */ public class SMSFragment extends Fragment { List<SMSBean>mDatas = new ArrayList<>(); private SMSAdapter adapter; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_sms, container, false); RecyclerView rv = (RecyclerView) view.findViewById(R.id.sms_rv); LinearLayoutManager manager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false); rv.setLayoutManager(manager); // 数据源 adapter = new SMSAdapter(getActivity(),mDatas); rv.setAdapter(adapter); // 加载本地数据 loadData(); return view; } private void loadData() { // 1.添加权限 该版本 // 2.ContentResolver ContentResolver resolver = getActivity().getContentResolver(); // 3.Uri地址 Uri uri = Uri.parse("content://sms"); // 4.获取数据 Cursor cursor = resolver.query(uri, null, null, null, null); // 5.遍历 while (cursor.moveToNext()) { String type = cursor.getString(cursor.getColumnIndex("type")); String dtype=""; switch (type) { case "1": dtype = "接受到的信息"; break; case "2": dtype="发送的信息"; break; default: dtype = "其他的信息"; break; } String body = cursor.getString(cursor.getColumnIndex("body")); String address = cursor.getString(cursor.getColumnIndex("address")); long date = cursor.getLong(cursor.getColumnIndex("date")); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String time = sdf.format(new Date(date)); SMSBean bean = new SMSBean(dtype,address,body,time); mDatas.add(bean); } // 通知adapter更新数据 adapter.notifyDataSetChanged(); } }
<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/drawerlayout" tools:context="com.example.dome2.MainActivity"> <!-- 代表中心的内容--> <LinearLayout android:id="@+id/center_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" app:title="通话记录" app:titleTextColor="#FFF" android:background="@color/colorPrimary" app:navigationIcon="@mipmap/icon_nav"> </android.support.v7.widget.Toolbar> <!-- 用来占位的--> <LinearLayout android:id="@+id/layout" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> </LinearLayout> </LinearLayout> <!-- 代表左边的抽屉 --> <LinearLayout android:id="@+id/left_layout" android:layout_width="200dp" android:layout_height="match_parent" android:orientation="vertical" android:layout_gravity="left" android:background="#fdff6080"> <RelativeLayout android:layout_width="match_parent" android:layout_height="200dp" android:background="@color/colorAccent"> <ImageView android:id="@+id/iv" android:layout_centerInParent="true" android:src="@mipmap/p" android:layout_width="80dp" android:layout_height="80dp" /> <TextView android:layout_below="@+id/iv" android:gravity="center" android:text="考试必过" android:textSize="18sp" android:layout_width="match_parent" android:layout_height="wrap_content" /> </RelativeLayout> <Button android:id="@+id/btn_call" android:layout_width="100dp" android:background="@drawable/pop" android:layout_height="wrap_content" android:text="获取通话记录" android:onClick="onClick"/> <Button android:id="@+id/btn_sms" android:layout_width="100dp" android:layout_height="wrap_content" android:background="@drawable/pop" android:text="获取短信记录" android:layout_marginTop="10dp" android:onClick="onClick"/> <Button android:id="@+id/btn_music" android:layout_width="100dp" android:layout_height="wrap_content" android:text="获取多媒体音乐" android:layout_marginTop="10dp" android:background="@drawable/pop" android:onClick="onClick"/> <Button android:id="@+id/btn_net" android:layout_width="100dp" android:layout_height="wrap_content" android:text="获取网络信息" android:background="@drawable/pop" android:layout_marginTop="10dp" android:onClick="onClick"/> </LinearLayout> </android.support.v4.widget.DrawerLayout>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.dome2.call.CallLogFragment"> <!-- TODO: Update blank fragment layout --> <android.support.v7.widget.RecyclerView android:id="@+id/call_rv" android:layout_width="match_parent" android:layout_height="match_parent"/> </FrameLayout>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.dome2.music.MusicFragment"> <!-- TODO: Update blank fragment layout --> <android.support.v7.widget.RecyclerView android:id="@+id/music_rv" android:layout_width="match_parent" android:layout_height="match_parent"/> </FrameLayout>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.dome2.net.NetFragment"> <!-- TODO: Update blank fragment layout --> <android.support.v7.widget.RecyclerView android:id="@+id/net_rv" android:layout_width="match_parent" android:layout_height="match_parent"/> </FrameLayout>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.dome2.sms.SMSFragment"> <!-- TODO: Update blank fragment layout --> <android.support.v7.widget.RecyclerView android:id="@+id/sms_rv" android:layout_width="match_parent" android:layout_height="match_parent" /> </FrameLayout>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:orientation="vertical"> <TextView android:id="@+id/item_call_id" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="1" /> <TextView android:id="@+id/item_call_number" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="18910235678" /> <TextView android:id="@+id/item_call_time" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="110秒" /> <ImageView android:layout_width="match_parent" android:layout_height="2dp" android:layout_marginTop="10dp" android:background="@color/colorAccent"/> </LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/item_music_id" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:text="1" android:textSize="28sp" android:textStyle="bold" android:layout_marginLeft="20dp"/> <TextView android:id="@+id/item_music_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_marginLeft="30dp" android:layout_marginStart="30dp" android:layout_marginTop="13dp" android:layout_toEndOf="@+id/item_music_id" android:layout_toRightOf="@+id/item_music_id" android:text="算什么男人" android:textSize="20sp"/> <TextView android:id="@+id/item_music_singer" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/item_music_name" android:layout_alignStart="@+id/item_music_name" android:layout_below="@+id/item_music_name" android:layout_marginTop="20dp" android:text="周杰伦" android:textSize="14sp"/> <TextView android:id="@+id/item_music_line" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/item_music_singer" android:layout_marginLeft="10dp" android:layout_marginStart="10dp" android:layout_toEndOf="@+id/item_music_singer" android:layout_toRightOf="@+id/item_music_singer" android:text="|" android:textStyle="bold"/> <TextView android:id="@+id/item_music_album" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/item_music_line" android:layout_marginLeft="10dp" android:layout_toEndOf="@+id/item_music_line" android:layout_toRightOf="@+id/item_music_line" android:text="哎呦不错哦" android:textSize="14sp"/> <TextView android:id="@+id/item_music_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_alignParentRight="true" android:layout_below="@+id/item_music_album" android:layout_marginEnd="25dp" android:layout_marginRight="25dp" android:text="5:30" /> <ImageView android:layout_width="match_parent" android:layout_height="2dp" android:layout_marginTop="10dp" android:layout_below="@+id/item_music_time" android:background="@color/colorAccent"/> </RelativeLayout>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <ImageView android:id="@+id/item_net_iv" android:layout_width="match_parent" android:layout_height="200dp" android:src="@mipmap/ic_launcher" android:scaleType="centerCrop" android:layout_margin="5dp"/> <TextView android:id="@+id/item_net_tv" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="18sp" android:textColor="#5e050e" android:text="裴浩宇"/> </LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:background="#fc5f81" android:orientation="vertical"> <TextView android:id="@+id/item_sms_type" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="接受的短信" /> <TextView android:id="@+id/item_sms_number" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="电话:18911006789" /> <TextView android:id="@+id/item_sms_body" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="今天天气好好啊红啊好好啊哈!!!" /> <TextView android:id="@+id/item_sms_time" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="right" android:text="2018-01-01 18:30:23" /> <ImageView android:layout_width="match_parent" android:layout_height="2dp" android:background="@color/colorAccent"/> </LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/search" android:icon="@mipmap/icon_search" android:title="搜索" app:showAsAction="always"/> </menu>