Android自定义BaseAdapter看看小动物们在说啥

Android自定义BaseAdapter看看小动物们在说啥

这里写图片描述

ListView自带上下滑动

这里写图片描述

这里也是根据大神学习的就不装逼了

布局文件:activity_main.xml


<LinearLayout 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:orientation="vertical"tools:context=".MainActivity"><TextView
        android:layout_width="match_parent"android:layout_height="48dp"android:textSize="18sp"android:text="动物的世界你们不懂"android:gravity="center"/><ListView
        android:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/list_animal"android:layout_gravity="center_horizontal" />
LinearLayout>

展示视图控制文件:MainActivity

package run.yang.com.baseadapterdemo;import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.AdapterView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.Toast;import com.google.android.gms.appindexing.Action;
import com.google.android.gms.appindexing.AppIndex;
import com.google.android.gms.common.api.GoogleApiClient;import java.util.LinkedList;
import java.util.List;public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener {private List mData = null;private Context mContext;private AnimalAdapter mAdapter = null;private ListView list_animal;private LinearLayout ly_content;/*** ATTENTION: This was auto-generated to implement the App Indexing API.* See https://g.co/AppIndexing/AndroidStudio for more information.*/private GoogleApiClient client;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mContext = MainActivity.this;list_animal = (ListView) findViewById(R.id.list_animal);//动态加载顶部View和底部Viewfinal LayoutInflater inflater = LayoutInflater.from(this);View headView = inflater.inflate(R.layout.view_header, null, false);View footView = inflater.inflate(R.layout.view_footer, null, false);mData = new LinkedList();mData.add(new Animal("狗说", "你是狗么?", R.drawable.ic_icon_dog));mData.add(new Animal("牛说", "你是牛么?", R.drawable.ic_icon_cow));mData.add(new Animal("鸭说", "你是鸭么?", R.drawable.ic_icon_duck));mData.add(new Animal("鱼说", "你是鱼么?", R.drawable.ic_icon_fish));mData.add(new Animal("马说", "你是马么?", R.drawable.ic_icon_horse));mData.add(new Animal("马说", "你是马么?", R.drawable.ic_icon_horse));mData.add(new Animal("马说", "你是马么?", R.drawable.ic_icon_horse));mData.add(new Animal("马说", "你是马么?", R.drawable.ic_icon_horse));mData.add(new Animal("马说", "你是马么?", R.drawable.ic_icon_horse));mData.add(new Animal("马说", "你是马么?", R.drawable.ic_icon_horse));mData.add(new Animal("马说", "你是马么?", R.drawable.ic_icon_horse));mAdapter = new AnimalAdapter((LinkedList) mData, mContext);//添加表头和表尾需要写在setAdapter方法调用之前!!!list_animal.addHeaderView(headView);list_animal.addFooterView(footView);list_animal.setAdapter(mAdapter);list_animal.setOnItemClickListener(this);// ATTENTION: This was auto-generated to implement the App Indexing API.// See https://g.co/AppIndexing/AndroidStudio for more information.client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();}@Overridepublic void onItemClick(AdapterView parent, View view, int position, long id) {Toast.makeText(mContext, "你点击了第" + position + "项", Toast.LENGTH_SHORT).show();}@Overridepublic void onStart() {super.onStart();// ATTENTION: This was auto-generated to implement the App Indexing API.// See https://g.co/AppIndexing/AndroidStudio for more information.client.connect();Action viewAction = Action.newAction(Action.TYPE_VIEW, // TODO: choose an action type."Main Page", // TODO: Define a title for the content shown.// TODO: If you have web page content that matches this app activity's content,// make sure this auto-generated web page URL is correct.// Otherwise, set the URL to null.Uri.parse("http://host/path"),// TODO: Make sure this auto-generated app URL is correct.Uri.parse("android-app://run.yang.com.baseadapterdemo/http/host/path"));AppIndex.AppIndexApi.start(client, viewAction);}@Overridepublic void onStop() {super.onStop();// ATTENTION: This was auto-generated to implement the App Indexing API.// See https://g.co/AppIndexing/AndroidStudio for more information.Action viewAction = Action.newAction(Action.TYPE_VIEW, // TODO: choose an action type."Main Page", // TODO: Define a title for the content shown.// TODO: If you have web page content that matches this app activity's content,// make sure this auto-generated web page URL is correct.// Otherwise, set the URL to null.Uri.parse("http://host/path"),// TODO: Make sure this auto-generated app URL is correct.Uri.parse("android-app://run.yang.com.baseadapterdemo/http/host/path"));AppIndex.AppIndexApi.end(client, viewAction);client.disconnect();}
}

写个Animal.java,大家不陌生吧

package run.yang.com.baseadapterdemo;/*** Created by yang_zzheng on 2016/7/14* yangzhizheng2012@163.com*/
public class Animal {private String aName;private String aSpeak;private int aIcon;public Animal() {}public Animal(String aName, String aSpeak, int aIcon) {this.aName = aName;this.aSpeak = aSpeak;this.aIcon = aIcon;}public String getaName() {return aName;}public String getaSpeak() {return aSpeak;}public int getaIcon() {return aIcon;}public void setaName(String aName) {this.aName = aName;}public void setaSpeak(String aSpeak) {this.aSpeak = aSpeak;}public void setaIcon(int aIcon) {this.aIcon = aIcon;}
}

自定义的BaseAdapter—->AnimalAdapter.java

package run.yang.com.baseadapterdemo;import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;import java.util.LinkedList;/*** Created by yang_zzheng on 2016/7/14* yangzhizheng2012@163.com*/
public class AnimalAdapter extends BaseAdapter {private LinkedList mData;private Context mContext;public AnimalAdapter(LinkedList mData, Context mContext) {this.mData = mData;this.mContext = mContext;}@Overridepublic int getCount() {return mData.size();}@Overridepublic Object getItem(int position) {return null;}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder holder = null;if(convertView == null){convertView = LayoutInflater.from(mContext).inflate(R.layout.item_list_animal,parent,false);holder = new ViewHolder();holder.img_icon = (ImageView) convertView.findViewById(R.id.img_icon);holder.txt_aName = (TextView) convertView.findViewById(R.id.txt_aName);holder.txt_aSpeak = (TextView) convertView.findViewById(R.id.txt_aSpeak);convertView.setTag(holder);   //将Holder存储到convertView中}else{holder = (ViewHolder) convertView.getTag();}holder.img_icon.setBackgroundResource(mData.get(position).getaIcon());holder.txt_aName.setText(mData.get(position).getaName());holder.txt_aSpeak.setText(mData.get(position).getaSpeak());return convertView;}static class ViewHolder{ImageView img_icon;TextView txt_aName;TextView txt_aSpeak;}
}

当然少不了我们的列表项目布局item_list_animal.xml


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"><ImageView
        android:id="@+id/img_icon"android:layout_width="64dp"android:layout_height="64dp"android:baselineAlignBottom="true"android:paddingLeft="8dp" /><LinearLayout
        android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"><TextView
            android:id="@+id/txt_aName"android:layout_width="wrap_content"android:layout_height="wrap_content"android:paddingLeft="8dp"android:textColor="#1D1D1C"android:textSize="20sp" /><TextView
            android:id="@+id/txt_aSpeak"android:layout_width="wrap_content"android:layout_height="wrap_content"android:paddingLeft="8px"android:textColor="#B4B4B9"android:textSize="14sp" />LinearLayout>LinearLayout>

这里我们还添加了view_header.xml表头


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:gravity="center"><TextView
        android:layout_width="match_parent"android:layout_height="48dp"android:textSize="18sp"android:text="表头"android:gravity="center"android:background="#43BBEB"android:textColor="#FFFFFF"/>
LinearLayout>

这里我们还添加了view_footer.xml表尾


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:gravity="center"><TextView
        android:layout_width="match_parent"android:layout_height="48dp"android:textSize="18sp"android:text="表尾"android:gravity="center"android:background="#43BBEB"android:textColor="#FFFFFF"/>
LinearLayout>

我越往后学,感觉越来兴趣了,猪神真的很牛

本文参考文献

http://blog.csdn.net/coder_pig/article/details/48577231


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部