Android学习一点一点进步!
利用ListView或者GridView写一个简单的导航
像这样
- 主框架
这是ListView
<ListView
android:id="@+id/mylistview"
android:layout_height="fill_parent"
android:layout_width="match_parent"
android:scrollbars="none"
android:dividerHeight="10dp"
android:divider="#DFDFDF"
android:background="#FFFFFF">
</ListView>
这是GridView
<GridView
android:id="@+id/mygridview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:verticalSpacing="1dp"
android:horizontalSpacing="1dp"
android:scrollbars="none"
android:numColumns="3">
</GridView>
- 来个模板
这是ListView
<ImageView
android:layout_margin="8dp"
android:layout_centerVertical="true"
android:layout_width="40dp"
android:layout_height="40dp"
android:id="@+id/myimg"
android:background="#FFFFFF"
/>
<TextView
android:id="@+id/mytext"
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="项目"
android:layout_toRightOf="@id/myimg"
android:textSize="18sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/myimg"
android:layout_below="@+id/mytext"
android:text="XM"
android:layout_marginTop="28dp"
android:paddingBottom="5dp"
/>
<ImageView
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/icon_arrow_right"
android:layout_alignParentRight="true"
android:layout_marginRight="20dp"
/>
这是GridView
<ImageView
android:layout_margin="26dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/myimg"
android:layout_gravity="center"
/>
<TextView
android:layout_marginBottom="28dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/mytext"
android:text="名字"
android:textSize="18sp"
android:layout_gravity="center"
android:textColor="#c466f4"
/>
- 定义Java类
public class Titem {
public int imageId;
public String textTitle;
public Titem(int imageId,String textTitle){
this.imageId = imageId;
this.textTitle = textTitle;
}
}
- 继承BasAdapter
public class MyBaseAdapter extends BaseAdapter{
private List<Titem> list;
private LayoutInflater layoutInflater;
public MyBaseAdapter(Context context,List<Titem> list1){
this.list = list1;
layoutInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
- MainActivity
public class MainActivity extends AppCompatActivity {
private ListView listView;
private String[] texts = {"美食","电影","酒店住宿","休闲娱乐","外卖","自助餐","KTV"};
private int[] imgs = {R.mipmap.ic_category_0,R.mipmap.ic_category_1,
R.mipmap.ic_category_2,R.mipmap.ic_category_3,
R.mipmap.ic_category_4,R.mipmap.ic_category_5,
R.mipmap.ic_category_6};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.mylistview);
List<Titem> fitems = new ArrayList<>();
for (int i=0; i<texts.length; i++){
Titem obj = new Titem(imgs[i],texts[i]);
fitems.add(obj);
MyBaseAdapter myBaseAdapter = new MyBaseAdapter(this,fitems);
listView.setAdapter(myBaseAdapter);
}
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = layoutInflater.inflate(R.layout.item,null);
ImageView imageView = view.findViewById(R.id.myimg);
TextView textView = view.findViewById(R.id.mytext);
Titem fitem = list.get(position);
imageView.setImageResource(fitem.imageId);
textView.setText(fitem.textTitle);
return view;
}
}
}
MainActivity里我只写了ListView,变成GridView的话,只需要改动其中几处就好,很简单,在这里就不列举了
拜拜