2017.08.16ListView实现新闻案列(没有连数据库)
来源:互联网 发布:mac禁止程序自动启动 编辑:程序博客网 时间:2024/06/03 11:12
ListView 实现新闻案列(大神可以走了,本人新手):
第一步没啥好说的:创建布局页面,代码走起:
<?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="match_parent" android:orientation="vertical"> <ListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="match_parent"> </ListView></LinearLayout>
第二步:布局创建好了 我们接下来去MainActivity中初始化listview
ListView listview = (ListView) findViewById(R.id.listview);
我们最好把listView设为全局变量,如下:
private ListView listview ;
listview = (ListView) findViewById(R.id.listview);
这样我们想用listView的时候可以直接用。
listVie的初始化已经好了,接下来才是重点:
1.首先创建三个包,分别Adaper包,mybean包和Utis包,分别存放适配器,封装数据类和集合类,(因为要模仿本地数据所以要把数据封装到集合中)。
2.mybean包下创建Mybean类
public class MyBean { private String item;//要显示的条目 private String des;//要显示的内容 public String url;//点击条目跳转的地址 private Drawable icon;//显示的图片 public String getItem() { return item; } public void setItem(String item) { this.item = item; } public String getDes() { return des; } public void setDes(String des) { this.des = des; } public Drawable getIcon() { return icon; } public void setIcon(Drawable icon) { this.icon = icon; } }----------
3.在adaper包下创建MyAdaper类:
public class myAdaper extends BaseAdapter { private final ArrayList<MyBean> list;//把数据存到集合中 private final Context context;// public myAdaper(Context context,ArrayList<MyBean> list) {//初始化MyBean的数据 this.list = list; this.context = context; } @Override public int getCount() { return list.size();//要显示的天目数量,可以自己手动写如:return 10;这样在手机上只能显示10条, } @Override public Object getItem(int position) { return list.get(position);//墨认是null,获取点击天目的位置, } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = null;//是一个模板 if (convertView != null) { view = convertView; } else { view = View.inflate(context, R.layout.activity_item, null); //这里还要创建一个布局文件,以为我们药设置数据 } TextView tv_01 = (TextView) view.findViewById(R.id.tv_01); TextView tv_02 = (TextView) view.findViewById(R.id.tv_02); ImageView im_01 = (ImageView) view.findViewById(R.id.im_01); MyBean myBean = list.get(position); tv_01.setText(myBean.getItem()); tv_02.setText(myBean.getDes()); im_01.setImageDrawable(myBean.getIcon()); return view; }}
创建第二个布局文件
<?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="match_parent" android:gravity="center_vertical" android:padding="10dp" > <ImageView android:id="@+id/im_01" android:layout_width="68dp" android:layout_height="68dp" android:src="@color/colorPrimaryDark" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:maxLines="1" android:id="@+id/tv_01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="item" android:textSize="18dp" /> <TextView android:maxLines="3" android:id="@+id/tv_02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="要显示的内容" /> </LinearLayout></LinearLayout>
4.在Utis下创建NewsUtis类
因为没有联网所以自己谁便编写一些数据当演示
public class NewsUtis { public static ArrayList<MyBean> getAllNews(Context context) { ArrayList<MyBean> list = new ArrayList<>(); for (int i = 0; i < 100; i++) { MyBean myBean = new MyBean(); myBean.setItem("最后一批环保督察组进驻8省 多语种接收举报:"); myBean.setDes("昨日下午,中央第六环境保护督察组进驻西藏自治区,至此,第四批即最后一批8个中央环境保护督察组全部实现督察进驻。8个中央环境保护督察组分别负责对8个省份," + "即吉林、浙江、山东、海南" + "、四川、西藏、青海、新疆(含兵团)开展环境保护督察工作。"); myBean.setIcon(context.getResources().getDrawable(R.drawable.ic_launcher)); myBean.url="http://news.china.com.cn/2017-08/16/content_41417171.htm"; list.add(myBean); MyBean myBean1 = new MyBean(); myBean1.setItem("南方暴雨又至 今年汛期这些人抗洪不力被问责"); myBean1.setDes("中新网北京8月16日电(记者阚枫)近期,新一轮强降雨再度袭击南方多地,部分地区出现暴雨洪涝灾害。今年汛期,多地发文强调防汛救灾期间的工作纪律,严惩救灾推诿扯皮、擅离职守、" + "瞒报迟报等行为,一些干部也因汛期擅离职守、顶风违纪等原因被问责。"); myBean1.setIcon(context.getResources().getDrawable(R.drawable.icon2)); myBean1.url="http://news.china.com.cn/2017-08/16/content_41417179.htm"; list.add(myBean1); MyBean myBean2 = new MyBean(); myBean2.setItem("公安局"); myBean2.setDes("多部门联手打击传销,这些传销行骗套路需警惕"); myBean2.setIcon(context.getResources().getDrawable(R.drawable.icon)); myBean2.url="http://www.baidu.com"; list.add(myBean2); } return list; }}
最后再MainActivity写入以下代码:
public class MainActivity extends AppCompatActivity { private Context mContext; protected ListView listview; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main01); mContext = this; ArrayList<MyBean> allNews = NewsUtis.getAllNews(mContext); listview = (ListView) findViewById(R.id.listview); listview.setAdapter(new myAdaper(mContext, allNews)); listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { MyBean itemAtPosition = (MyBean) parent.getItemAtPosition(position); String url = itemAtPosition.url; Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(Uri.parse(url)); startActivity(intent); } }); }}
这样一个简单的新闻案列就出来了,就实现简单的实现了点击按钮。其他啥的全都没有。给新生看看。
阅读全文
0 0
- 2017.08.16ListView实现新闻案列(没有连数据库)
- 结合ListView和SQLite数据库实现商品展示案列
- ListView实现看新闻
- 新闻案例网络版(listview实现)
- 利用委托实现简单的注册(只是写入到文本当中没有连数据库)
- Android新闻客户端案列
- ListView添加headerview实现连动滑动
- mysql_ping实现数据库重连
- 新闻案例本地版(listview实现)
- android listview实现新闻列表展示效果
- 双列ListView的实现
- ListView点击列头排序功能实现
- ListView点击列排序的实现
- Android实现的ListView-ListViewAdapter(新闻列表事例)
- Android中通过ListView的实现简单新闻列表
- Android中通过ListView的实现简单新闻列表
- jsp连数据库报没有合适驱动的异常,前提驱动没有问题 解决办法:
- 利用ListView实现新闻客户端的新闻内容图文混排
- UVa116 单向TSP 动态规划
- 缓存穿透,缓存雪崩,缓存击穿解决方案分析
- angular ng-options使用
- jQuery Autocomplete 自动完成插件
- 线性筛素数
- 2017.08.16ListView实现新闻案列(没有连数据库)
- 资源帖
- webpack 配置学习笔记
- 提高 Java 代码性能的各种技巧
- codeforces839C Journey(DFS)
- 数据结构实验之二叉树四:还原二叉树
- 深拷贝、浅拷贝、数据类型
- Simpsons’ Hidden Talents HDU
- pycharm 安装