安卓之高级控件Listview的优化
2017-06-17 19:04
190 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。
效果图如下:
XML代码(activity_main)如下:
[html]
view plain
copy
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/lv_main_list"></ListView>
</LinearLayout>
XML代码(itemtag)如下(用来优化的):
[html]
view plain
copy
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:descendantFocusability="blocksDescendants">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/iv_main_image"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/tv_main_word"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="下载"
android:id="@+id/bu_main_bu"/>
</LinearLayout>
JAVA代码如下(ItemTag):
可以把它想象成一个实体类
[html]
view plain
copy
public class ItemTag {
public ImageView imageView;
public TextView textView;
public Button button;
}
Java代码如下(MainActivity):
[html]
view plain
copy
public class MainActivity extends AppCompatActivity {
private ListView lv_main_list;
private int images[]={R.drawable.bird,R.drawable.cat,R.drawable.chicken,R.drawable.duck,R.drawable.elephant};
private String titles[]={"小鸟","猫咪","小鸡","鸭子","大象"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv_main_list = (ListView) findViewById(R.id.lv_main_list);
lv_main_list.set
a87c
Adapter(new MyAdapter());
lv_main_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(MainActivity.this, "跳转到"+titles[position]+"页面", Toast.LENGTH_SHORT).show();
}
});
}
class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
return titles.length;
}
@Override
public Object getItem(int position) {
return titles[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if(convertView==null){
convertView=getLayoutInflater().inflate(R.layout.itemtag,null);
ItemTag itemTag=new ItemTag();
itemTag.imageView= (ImageView) convertView.findViewById(R.id.iv_main_image);
itemTag.textView= (TextView) convertView.findViewById(R.id.tv_main_word);
itemTag.button = (Button) convertView.findViewById(R.id.bu_main_bu);
convertView.setTag(itemTag);
}
ItemTag itemTag= (ItemTag) convertView.getTag();
itemTag.imageView.setImageResource(images[position]);
itemTag.textView.setText(titles[position]);
itemTag.button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "正在下载"+titles[position], Toast.LENGTH_SHORT).show();
}
});
return convertView;
}
}
}
效果图如下:
XML代码(activity_main)如下:
[html]
view plain
copy
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/lv_main_list"></ListView>
</LinearLayout>
XML代码(itemtag)如下(用来优化的):
[html]
view plain
copy
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:descendantFocusability="blocksDescendants">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/iv_main_image"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/tv_main_word"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="下载"
android:id="@+id/bu_main_bu"/>
</LinearLayout>
JAVA代码如下(ItemTag):
可以把它想象成一个实体类
[html]
view plain
copy
public class ItemTag {
public ImageView imageView;
public TextView textView;
public Button button;
}
Java代码如下(MainActivity):
[html]
view plain
copy
public class MainActivity extends AppCompatActivity {
private ListView lv_main_list;
private int images[]={R.drawable.bird,R.drawable.cat,R.drawable.chicken,R.drawable.duck,R.drawable.elephant};
private String titles[]={"小鸟","猫咪","小鸡","鸭子","大象"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv_main_list = (ListView) findViewById(R.id.lv_main_list);
lv_main_list.set
a87c
Adapter(new MyAdapter());
lv_main_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(MainActivity.this, "跳转到"+titles[position]+"页面", Toast.LENGTH_SHORT).show();
}
});
}
class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
return titles.length;
}
@Override
public Object getItem(int position) {
return titles[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if(convertView==null){
convertView=getLayoutInflater().inflate(R.layout.itemtag,null);
ItemTag itemTag=new ItemTag();
itemTag.imageView= (ImageView) convertView.findViewById(R.id.iv_main_image);
itemTag.textView= (TextView) convertView.findViewById(R.id.tv_main_word);
itemTag.button = (Button) convertView.findViewById(R.id.bu_main_bu);
convertView.setTag(itemTag);
}
ItemTag itemTag= (ItemTag) convertView.getTag();
itemTag.imageView.setImageResource(images[position]);
itemTag.textView.setText(titles[position]);
itemTag.button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "正在下载"+titles[position], Toast.LENGTH_SHORT).show();
}
});
return convertView;
}
}
}
相关文章推荐
- 安卓之高级控件Listview的优化
- 安卓控件 listView 的学习及优化 (ConvetView、viewHolder)
- 8.高级控件(二)之ListView优化
- 安卓控件 listView 的学习及优化 (ConvetView、viewHolder)
- Android-高级控件-ListView的优化技巧
- Android-高级控件-ListView的优化技巧
- Android高级控件之ListView的优化以及下拉刷新页面
- 安卓高级控件3之Gallery(画廊)
- 安卓的控件之AutoCompleteTextView,ListView,Menu,Dialog
- Android控件ListView优化
- ListView列表控件的介绍和性能优化
- Android高级控件之ListView
- Android 控件 ListView 的性能优化
- 安卓ListView控件显示
- 安卓Button的四种点击方式 ListView的优化,PopWindow,隐式跳转
- 安卓ListView的性能优化
- Android基本控件之ListView(二)<ListView优化>
- 安卓Android控件ListView获取item中EditText值
- Android UI 设计(11):ListView 控件使用优化(五)
- Android高级控件(一)——ListView绑定CheckBox实现全选,添加和删除等功能