标签:drawable find vat sele trie drive err parent bundle
***1.ListView控件常用属性
choiceMode:设置ListView的选择行为
divider:设置列表项的分隔条的颜色
dividerHeight;设置分隔条高度
entries:指定一个数组资源,android将根据该资源生成listview,如android:entries="@array/xxx",资源可以到values文件夹中的string.xml中添加
footerDividersEnabled:如果设置为false将不会在footerView之前设置分隔条
headerDividersEnabled:如果设置为false将不会在headerView之后设置分隔条
***2.常见问题及解决方法
问题1:listview在拖动的时候背景图片消失变成黑色背景。等到拖动完毕我们自己的背景图片才显示出来。
解决办法:
xml中: android:scrollingCache="false" 或者 android:cacheColorHint="#00000000"
代码中: setScrollingCacheEnabled(false) 或者 setCacheColorHint(0) 或者setCacheColorHint(Color.TRANSPARENT);
问题2:listview的上边和下边有黑色的阴影。
解决办法:
xml中: android:fadingEdge="none"
代码中:setFadingEdgeLength(0);
问题3:lsitview的每一项之间需要设置一个图片做为间隔。
解决办法:
xml中 :android:divider="@drawable/list_driver
java中:Drawable dr = this.getResources().getDrawable(R.colo.listviewdividerClour);
ListView.setDivider(dr);
问题4:默认会显示选中的item为橙黄底色,有时候我们需要去掉这种效果:
解决办法:
xml中:listSelector="@android:color/transparent
衍生:ListView选中时默认是黄色,很多时候会和我们软件的配色不符合,那么需要修改默认的ListView配色,
java中:
Drawable drawable=getResources().getDrawable(R.drawable.touch_feedback);
ListView.setSelector(drawable);
xml中:
listSelector="@android:color/blue
同理运用到 GridView中
***3.设置ListView控件的点击事件:
public class MainActivity extends Activity {
private ArrayAdapter<String> adapter;
private ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.listview);
//1.准备数据源(可以直接在这里定义数组,也可在strings.xml中定义数据源,然后在这里获取)
final String[] citys = getResources().getStringArray(R.array.citys);
//2.将数据源的数据加载到适配器中
adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1,citys);
//3.将适配器中的数据加载到控件中
lv.setAdapter(adapter);
//为ListView控件的每个Item设置监听事件
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
/*获取Item中数据的四种方式*/
String s1 = citys[position];//从数据源中获取
String s2 = adapter.getItem(position);//从适配器中获取
String s3 = parent.getItemAtPosition(position).toString();//从parent中获取
String s4 = lv.getItemAtPosition(position).toString();//从ListView控件中获取
Toast.makeText(MainActivity.this, "s1="+s1+",s2="+s2+",s3="+s3+",s4="+s4, Toast.LENGTH_SHORT).show();
}
});
//这是为ListView控件中的Item设置长按事件
lv.setOnItemLongClickListener(new OnItemLongClickListener() {
//这是长按时的回调函数
//若ListView既绑定监听事件也绑定了长按事件,此时返回值为false时表示对事件不处理(对点击和长按事件都会触发),若为true表示对事件处理(只对长按事件触发)
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
return false;
}
});
}
}
标签:drawable find vat sele trie drive err parent bundle
原文地址:https://www.cnblogs.com/SanguineBoy/p/9748316.html