当前位置: 编程技术>移动开发
本页文章导读:
▪Broadcast的运用 Broadcast的使用
1.发送方:
private final static String SCROLL_TO_POSITION = "scroll_to_position";
//发送Broadcast
Intent intent = new Intent();
intent.putExtra("POSITION", position);
intent.setAction(SCROLL_TO_POSITION);
myCon.........
▪ 运行时起动/禁用组件 运行时启动/禁用组件
public void setMyReceiverEnabled(boolean enabled) {
MyLog.d("enabled = " + enabled);
PackageManager packageManager = getPackageManager();
ComponentName componentName = new ComponentName(this, MyReceiver.class);
.........
▪ 说说ListView为什么会重复显示的有关问题 说说ListView为什么会重复显示的问题
个人理解,android 出于对性能的考虑,对 listview 中的控件进行了重复利用,他只缓存了屏幕可见范围内的数据。当你滚动listview的时候,原来的Item被隐藏.........
[1]Broadcast的运用
来源: 互联网 发布时间: 2014-02-18
Broadcast的使用
1.发送方:
private final static String SCROLL_TO_POSITION = "scroll_to_position";
//发送Broadcast
Intent intent = new Intent();
intent.putExtra("POSITION", position);
intent.setAction(SCROLL_TO_POSITION);
myContext.sendBroadcast(intent);
2.接收方:
private final static String SCROLL_TO_POSITION = "scroll_to_position";
private BroadcastReceiverForListView myBroadcastReceiverForListView;
//注册监听
@Override
public void onCreate()
{
super.onCreate();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(SCROLL_TO_POSITION);
myBroadcastReceiverForListView = new BroadcastReceiverForListView();
this.registerReceiver(myBroadcastReceiverForListView, intentFilter);
}
//取消监听
@Override
public void onDestroy()
{
super.onDestroy();
this.unregisterReceiver(myBroadcastReceiverForListView);
}
//定义一个内部类实现对SCROLL_TO_POSITION消息的接收和处理
private class BroadcastReceiverForListView extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
String action = intent.getAction();
int position = intent.getIntExtra("POSITION", -1);
if(action.equals(SCROLL_TO_POSITION) && position != -1)
{
System.out.println("哥接收到SCROLL_TO_POSITION通知啦!");
// lvOfCallLogs.scrollTo(position, position);
lvOfCallLogs.setSelection(position);
}
}
}
[2] 运行时起动/禁用组件
来源: 互联网 发布时间: 2014-02-18
运行时启动/禁用组件
public void setMyReceiverEnabled(boolean enabled) {
MyLog.d("enabled = " + enabled);
PackageManager packageManager = getPackageManager();
ComponentName componentName = new ComponentName(this, MyReceiver.class);
int newState = enabled ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
packageManager.setComponentEnabledSetting(componentName, newState, PackageManager.DONT_KILL_APP);
}
[3] 说说ListView为什么会重复显示的有关问题
来源: 互联网 发布时间: 2014-02-18
说说ListView为什么会重复显示的问题
个人理解,android 出于对性能的考虑,对 listview 中的控件进行了重复利用,他只缓存了屏幕可见范围内的数据。当你滚动listview的时候,原来的Item被隐藏起来了,但是他的组件仍然被利用。所以,你会看到之前出于选中状态的Item会重复出现的问题。
那么我们应该怎么做呢?
假设listview中的某一项被选中了。其中的某个子view变为了VISIBLE。当你滚动listview的时候,要确保的是组件在初始化的时候需要回到他的初始状态。即,让这个变为VISIBLE的子view,在绑定数据之前,回到原来的GONE的状态。
最新技术文章: