java 列表视图的数组适配器示例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 列表视图的数组适配器示例相关的知识,希望对你有一定的参考价值。
public class BuildingAdapter extends ArrayAdapter<JSONObject>
{
private Context my_context;
private int my_layout_id;
private ArrayList<JSONObject> my_data = null;
public BuildingAdapter( Context context, int layoutResourceId, ArrayList<JSONObject> data )
{
super( context, layoutResourceId, data );
my_context = context;
my_layout_id = layoutResourceId;
my_data = data;
}
@Override
public View getView( int position, View convertView, ViewGroup parent )
{
View row = convertView;
BuildingItem holder = null;
if ( row == null )
{
LayoutInflater inflater = ( (Activity) my_context ).getLayoutInflater();
row = inflater.inflate( my_layout_id, parent, false );
holder = new BuildingItem();
holder.txtName = (TextView) row.findViewById( R.id.buildingname );
holder.btnFloor = (Button) row.findViewById( R.id.floors );
row.setTag( holder );
}
else
{
holder = (BuildingItem) row.getTag();
}
final JSONObject item = my_data.get( position );
if ( item != null )
{
try
{
holder.txtName.setText( item.getString( "name" ) );
} catch ( JSONException e )
{
holder.txtName.setText( "N/A" );
e.printStackTrace();
}
holder.btnFloor.setOnClickListener( new View.OnClickListener()
{
@Override
public void onClick( View v )
{
try
{
( (BuildingHandler) my_context ).handleFloors(item.getString( "id" ));
} catch ( JSONException e )
{
e.printStackTrace();
}
}
} );
row.setOnClickListener( new View.OnClickListener()
{
@Override
public void onClick( View v )
{
if ( my_context instanceof BuildingHandler )
{
try
{
( (BuildingHandler) my_context ).handleSelect( item.getString( "id" ) );
} catch ( JSONException e )
{
e.printStackTrace();
}
}
}
} );
}
else
{
holder.txtName.setText( "NA" );
}
return row;
}
static class BuildingItem
{
TextView txtName;
Button btnFloor;
}
}
以上是关于java 列表视图的数组适配器示例的主要内容,如果未能解决你的问题,请参考以下文章
如何使列表视图出现在片段中?
设置数组适配器列表视图
在列表视图中使用具有更多视图的数组适配器
如何使用 glide* 使用数组列表中的自定义适配器将图像设置为列表视图
安卓讲课笔记5.6 列表视图
安卓讲课笔记5.6 列表视图