当前位置: 编程技术>移动开发
本页文章导读:
▪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的状态。
最新技术文章: