本周主要了解一些布局的优化内容,而其中比重较大的一块是ListView
ListView
ListView是Android软件开发中非常重要组件之一,基本上是个APP基本都会使用ListView,ListView不得不说Adapter适配器,只有通过Adapter才可以把列表中的数据映射ListView中。
主要实现代码
-
MainActivity中
public class MainActivity extends AppCompatActivity { private List<ListInfos> mListInfos; private ListView mWeixinListView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mWeixinListView = (ListView) findViewById(R.id.list_view); mListInfos = new ArrayList<>(); mListInfos.add(new ListInfos("去评分", 1)); mListInfos.add(new ListInfos("功能介绍", 2)); mListInfos.add(new ListInfos("系统通知", 3)); mListInfos.add(new ListInfos("帮助与反馈", 4)); mListInfos.add(new ListInfos("举报与投诉", 5)); mListInfos.add(new ListInfos("检查新版本", 6)); WeixinAdapter weixinAdapter = new WeixinAdapter(MainActivity.this, mListInfos); mWeixinListView.setAdapter(weixinAdapter); }
}
-
ListInfos中设置传入listview中的内容
public class ListInfos implements Serializable { private String mItem; private int mNum; public ListInfos(String item, int num){ mItem = item; mNum = num; } public String getItem() { return mItem; } public void setItem(String item) { mItem = item; } public int getNum() { return mNum; } public void setNum(int num) { this.mNum = num; }
}
-
Adapter中设置adapter的相关内容,此处代码最好自己敲熟练了,以后会经常用到
public class WeixinAdapter extends BaseAdapter{ private Context mContext; private LayoutInflater mLayoutInflater; //LayoutInflater是用于解析布局 private List<ListInfos> mListInfos; public WeixinAdapter(Context context, List<ListInfos> ListInfos){ mContext = context; mListInfos = ListInfos; mLayoutInflater= (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public int getCount() { //有多少数据 return mListInfos.size(); } @Override public Object getItem(int position) { //返回某一条数据对象 return mListInfos.get(position); } @Override public long getItemId(int position) { //数据位置 return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // 将xml读取返回一个视图 convertView = mLayoutInflater.inflate(R.layout.weixin_listview,null); // 从返回的convertView视图中获取控件 TextView itemTextView = (TextView) convertView.findViewById(R.id.item_text_view); // 将控件和数据之间进行绑定 itemTextView.setText(mListInfos.get(position).getItem()); return convertView; }
}
-
activity_main.xml中设置listview所在布局页面的大致格式
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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" android:background="@color/gray" tools:context="com.geekband.myapplication_weixin_listview.MainActivity"> <ImageView android:src="@drawable/weixin" android:layout_width="wrap_content" android:layout_height="80dp" android:id="@+id/image" /> <TextView android:id="@+id/version" android:text="微信6.3.13" android:layout_width="wrap_content" android:layout_height="18dp" android:layout_below="@+id/image" android:layout_centerHorizontal="true"/> <ListView android:layout_below="@+id/version" android:layout_marginTop="30dp" android:id="@+id/list_view" android:background="@color/white" android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:layout_width="wrap_content" android:layout_height="30dp" android:layout_centerHorizontal="true" android:id="@+id/d1" android:textSize="13dp" android:textColor="@color/colorPrimary" android:text="使用条款和隐私政策" android:layout_above="@+id/d2" /> <TextView android:layout_above="@+id/d3" android:layout_width="wrap_content" android:layout_height="15dp" android:layout_centerHorizontal="true" android:textSize="10dp" android:text="腾讯公司 版权所有" android:id="@+id/d2" /> <TextView android:layout_above="@+id/d4" android:layout_width="wrap_content" android:layout_height="15dp" android:layout_centerHorizontal="true" android:textSize="10dp" android:text="Copyright©2011-2015 Tencent" android:id="@+id/d3" /> <TextView android:layout_width="wrap_content" android:layout_height="15dp" android:textSize="10dp" android:text="All Rights Reserved" android:layout_centerHorizontal="true" android:id="@+id/d4" android:layout_alignParentBottom="true" android:layout_marginBottom="10dp" /> </RelativeLayout>
-
listview.xml中设置在listview视图内显示的textview的格式
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/item_text_view" android:layout_width="match_parent" android:layout_height="40dp" android:textSize="15dp" android:textColor="@color/black" android:layout_marginLeft="16dp" android:gravity="center_vertical" /> </RelativeLayout>
listview显示效果
-
另外在学习中遇到的一些问题也记录在此账号的笔记当中,有兴趣的可以去看看
上文均为个人观点,欢迎大家讨论交流 作者:[你连野区的一条狗都不如] 作者邮箱:[614475386@qq.com] 作者微博(从不更新):[900lee@sina.cn] 关于转载:欢迎转载,但必须在文章中给出原文连接。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。