1.实现类 MyGoodsAdapter.java 包含监听方法,界面实现
import java.util.List;
import com.example.goodlist.activity.R;
import com.example.goodlist.entity.Good;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import android.widget.Toast;
/*
* 我的商品ListView的adapter。
* */
public class MyGoodsAdapter extends BaseAdapter {
private List<Good> goods;// ListView显示的数据
private int resource;// 显示列表项的Layout
private LayoutInflater inflater;// 界面生成器
private Context context;
public MyGoodsAdapter(List<Good> goods, int resource, Context context) {
this.goods = goods;
this.resource = resource;
this.context = context;
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return goods.size();
}
@Override
public Object getItem(int arg0) {
return goods.get(arg0);
}
@Override
public long getItemId(int arg0) {
return arg0;
}
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
if (arg1 == null) {
arg1 = inflater.inflate(resource, null);
}
final Good good = goods.get(arg0);
TextView goodBarcode = (TextView) arg1.findViewById(R.id.goodBarcode);
// 设置ListView中的Item中的TextView
System.out.println("goodBarcode="+goodBarcode);
System.out.println("good="+good);
goodBarcode.setText(good.getGoodBarcode());
// 为TextView设置监听器
goodBarcode.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Toast.makeText(context, good.getGoodBarcode(),
Toast.LENGTH_LONG).show();
}
});
TextView goodName = (TextView) arg1.findViewById(R.id.goodName);
goodName.setText(good.getGoodName());
goodName.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Toast.makeText(context, good.getGoodName(), Toast.LENGTH_LONG)
.show();
}
});
TextView goodProvider = (TextView) arg1.findViewById(R.id.goodProvider);
goodProvider.setText(good.getGoodProvider());
goodProvider.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Toast.makeText(context, good.getGoodProvider(),
Toast.LENGTH_LONG).show();
}
});
return arg1;
}
2.头文件MyGoodsActivity.java 其中包含方法的调用,界面内容
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.example.goodlist.adapter.MyGoodsAdapter;
import com.example.goodlist.entity.Good;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class MyGoodsActivity extends Activity {
private ListView goodsinfoListView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_goods_listview);
// 获得ListView句柄
goodsinfoListView = (ListView) findViewById(R.id.goodsinfoListView);
final MyGoodsAdapter mgs = new MyGoodsAdapter(getListData(),
R.layout.activity_my_goods_listview_item, this);
goodsinfoListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// int position =Integer.parseInt(arg1.getTag().toString());
mgs.getView(arg2, arg1, goodsinfoListView);
}
});
goodsinfoListView.setAdapter(mgs);
}
/* ListView数据 */
private List<Good> getListData() {
List<Good> list = new ArrayList<Good>();
Good good = new Good("1111111", "果冻", "XXX区域代理商");
list.add(good);
Good good1 = new Good("2222222", "营养快线", "XXX区域代理商");
list.add(good1);
Good good2 = new Good("333333", "豆干", "XXX区域代理商");
list.add(good2);
return list;
}
}
3. good的总布局文件 其中包含ListView 一级标题TextView
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffffff"
android:gravity="center"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dip"
android:layout_marginTop="93dip"
android:orientation="horizontal"
android:paddingLeft="15px" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="10dip"
android:text="商品条码"
android:textColor="#000"
android:textSize="16sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="10dip"
android:layout_marginLeft="40dp"
android:text="商品名称"
android:textColor="#000"
android:textSize="16sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="10dip"
android:text="供应商"
android:layout_marginLeft="40dp"
android:textColor="#000"
android:textSize="16sp" />
</LinearLayout>
<ScrollView
android:id="@+id/feedbacklayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="103dip"
android:paddingTop="20.0dip" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="20px" >
<ListView
android:id="@+id/goodsinfoListView"
android:layout_width="wrap_content"
android:layout_height="354dp"
android:layout_marginBottom="5.0dip"
android:layout_marginRight="5.0dip"
android:textColor="#000"
android:textSize="16.0dip" >
</ListView>
</LinearLayout>
</ScrollView>
</RelativeLayout>
4.good的子布局文件 , 其中包含good的每一个实例的实现TextView
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/goodBarcode"
android:layout_width="150dip"
android:layout_height="wrap_content"
android:clickable="true"
android:paddingTop="10dip"
android:textColor="#000"
android:textSize="16sp" />
<TextView
android:id="@+id/goodName"
android:layout_width="150dip"
android:layout_height="wrap_content"
android:clickable="true"
android:paddingTop="10dip"
android:textColor="#000"
android:textSize="16sp" />
<TextView
android:id="@+id/goodProvider"
android:layout_width="150dip"
android:layout_height="wrap_content"
android:clickable="true"
android:paddingTop="10dip"
android:textColor="#000"
android:textSize="16sp" />
</LinearLayout>
程序的主要代码已基本写出,第一次看这么多的代码确实有点烦,粗略一看什么也看不懂,但自己慢慢仔细一看换是可以看懂一些,但要是自己写是绝对写不出来的。
但想要写好程序,首先要学会看程序。杠杆开始学习Android确实觉得很难,但经过一段时间的学习觉得也没那么难主要是理解,大部分代码的流程都是非常详细,只是调用的方法不懂。知道每一步干什么,需要什么,接下来就是方法的使用和调用了。