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);            }        });    }}

这样一个简单的新闻案列就出来了,就实现简单的实现了点击按钮。其他啥的全都没有。给新生看看。

原创粉丝点击