- 浏览: 189518 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
arpenker:
这个命令行运行的前提是要基于LINUX服务器能够自己手动安装F ...
linux java转amr为mp3 -
smith789:
使用的类都废弃了
HttpUtil工具类 -
s21109:
自定义TabHost之手势切换Tab视图(不带动画)
package cc.testlistview;
import java.util.ArrayList;
import java.util.HashMap;
import cn.com.bravesoft.testlistviewloadmore.R;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;
/**
* Demo描述:
* 保存和恢复ListView的当前位置
*
* 注意事项:
* onScrollStateChanged()方法中
* v.getTop()方法的文档描述:
* Top position of this view relative to its parent.
*
* 测试方法:
* 1 运行应用,滑动ListView
* 2 ListView停止滑动后,按下back退出应用
* 3 重新进入应用,ListView保持原位置
*/
public class MainActivity extends Activity {
private int position;
private int listViemItemTop;
private ListView mListView;
private SimpleAdapter mSimpleAdapter;
private HashMap<String, Object> mHashMap;
private ArrayList<HashMap<String, Object>> mArrayList;
private final String LISTVIEW_PREFERENCES = "listview_preferences";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
}
private void init() {
mListView = (ListView) findViewById(R.id.listView);
mArrayList = new ArrayList<HashMap<String, Object>>();
addDataForListView();
mSimpleAdapter = new SimpleAdapter(
MainActivity.this,
mArrayList,
R.layout.listviewitem,
new String[] { "id" },
new int[] { R.id.textView });
mListView.setAdapter(mSimpleAdapter);
mListView.setOnScrollListener(new OnScrollListenerImple());
}
private void addDataForListView() {
for (int i = 0; i < 20; i++) {
mHashMap = new HashMap<String, Object>();
mHashMap.put("id", "" + i);
mArrayList.add(mHashMap);
}
}
@Override
public void onPause() {
super.onPause();
SharedPreferences mySharedPreferences =
getSharedPreferences(LISTVIEW_PREFERENCES,Activity.MODE_PRIVATE);
SharedPreferences.Editor edit = mySharedPreferences.edit();
edit.putInt("listViemItemTop", listViemItemTop);
edit.putInt("position", position);
edit.commit();
}
@Override
public void onResume() {
super.onResume();
SharedPreferences sharedPreferences =
getSharedPreferences(LISTVIEW_PREFERENCES,Activity.MODE_PRIVATE);
listViemItemTop = sharedPreferences.getInt("listViemItemTop", 0);
position = sharedPreferences.getInt("position", 0);
//reset ListView location
mListView.setSelectionFromTop(position, listViemItemTop);
}
private class OnScrollListenerImple implements OnScrollListener {
@Override
public void onScroll(AbsListView listView, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
}
@Override
public void onScrollStateChanged(AbsListView listview, int scrollState) {
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
position = mListView.getFirstVisiblePosition();
View itemView = mListView.getChildAt(0);
listViemItemTop = (itemView == null) ? 0 : itemView.getTop();
System.out.println("---> listViemItemTop=" + listViemItemTop);
}
}
}
}
import java.util.ArrayList;
import java.util.HashMap;
import cn.com.bravesoft.testlistviewloadmore.R;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;
/**
* Demo描述:
* 保存和恢复ListView的当前位置
*
* 注意事项:
* onScrollStateChanged()方法中
* v.getTop()方法的文档描述:
* Top position of this view relative to its parent.
*
* 测试方法:
* 1 运行应用,滑动ListView
* 2 ListView停止滑动后,按下back退出应用
* 3 重新进入应用,ListView保持原位置
*/
public class MainActivity extends Activity {
private int position;
private int listViemItemTop;
private ListView mListView;
private SimpleAdapter mSimpleAdapter;
private HashMap<String, Object> mHashMap;
private ArrayList<HashMap<String, Object>> mArrayList;
private final String LISTVIEW_PREFERENCES = "listview_preferences";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
}
private void init() {
mListView = (ListView) findViewById(R.id.listView);
mArrayList = new ArrayList<HashMap<String, Object>>();
addDataForListView();
mSimpleAdapter = new SimpleAdapter(
MainActivity.this,
mArrayList,
R.layout.listviewitem,
new String[] { "id" },
new int[] { R.id.textView });
mListView.setAdapter(mSimpleAdapter);
mListView.setOnScrollListener(new OnScrollListenerImple());
}
private void addDataForListView() {
for (int i = 0; i < 20; i++) {
mHashMap = new HashMap<String, Object>();
mHashMap.put("id", "" + i);
mArrayList.add(mHashMap);
}
}
@Override
public void onPause() {
super.onPause();
SharedPreferences mySharedPreferences =
getSharedPreferences(LISTVIEW_PREFERENCES,Activity.MODE_PRIVATE);
SharedPreferences.Editor edit = mySharedPreferences.edit();
edit.putInt("listViemItemTop", listViemItemTop);
edit.putInt("position", position);
edit.commit();
}
@Override
public void onResume() {
super.onResume();
SharedPreferences sharedPreferences =
getSharedPreferences(LISTVIEW_PREFERENCES,Activity.MODE_PRIVATE);
listViemItemTop = sharedPreferences.getInt("listViemItemTop", 0);
position = sharedPreferences.getInt("position", 0);
//reset ListView location
mListView.setSelectionFromTop(position, listViemItemTop);
}
private class OnScrollListenerImple implements OnScrollListener {
@Override
public void onScroll(AbsListView listView, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
}
@Override
public void onScrollStateChanged(AbsListView listview, int scrollState) {
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
position = mListView.getFirstVisiblePosition();
View itemView = mListView.getChildAt(0);
listViemItemTop = (itemView == null) ? 0 : itemView.getTop();
System.out.println("---> listViemItemTop=" + listViemItemTop);
}
}
}
}
发表评论
-
解决ScrollView中嵌套ListView或RecycleView卡顿问题
2016-01-20 02:23 1951解决问题:<listview上下滑动卡顿> 只要 ... -
解决Eclipse启动速度过慢的问题
2016-01-13 20:20 2512Delete the following directory: ... -
Android,iOS打开手机QQ与指定用户聊天界面
2016-01-07 18:19 1790在浏览器中可以通过JS代码打开QQ并弹出聊天界面,一般作为客服 ... -
Android Studio debug使用release的签名
2015-12-09 17:50 1286当我们在做微信微博sdk分享的时候调试非常麻烦,因为要使用对应 ... -
解决Android SDK Manager更新、下载速度慢
2015-10-12 16:39 655转自: [urlhttp://blog.163.com/bob ... -
android httpClient 支持HTTPS的2种处理方式
2015-09-11 17:37 1352http://my.oschina.net/blackylin ... -
带进度条的WebView
2015-08-29 16:53 632public class ProgressWebView ex ... -
Android中javascript和java互相调用
2015-08-29 16:06 626http://www.jb51.net/article/599 ... -
仿微信朋友圈点击图片变暗
2015-08-20 22:35 1051import android.content.Context; ... -
Android图片缓存框架Fresco极其强大的配置
2015-07-20 21:12 1352Android图片缓存框架Fresco极其强大的配置,配置强大 ... -
Android实现ViewPager+RadioGroup滑动效果
2015-07-19 15:05 1226有滚动标识的滑动条,顺畅无比哦 -
Android实现可用性非常高的滚动数字条
2015-07-18 15:48 5116对外提供接口,可以是调用并改变数字滚动条的样式 -
Java实现二维码生成和解析代码
2015-07-05 16:36 1075请下载附件,查看代码 -
利用zxing-core.jar生成和解析二维码
2015-07-05 15:30 1584Zxing是Google提供的关于条码(一维码、二维码)的解析 ... -
Android-webview和js脚本语言交互的时候怎么获取js方法的返回值
2015-07-02 12:10 2102http://zhidao.baidu.com/questio ... -
JS判断手机端是否安装了某个客户端APP应用
2015-05-15 17:02 3365最近在做项目的wap版,有个需求就是,先判断手机上是否有我们的 ... -
Android选图裁剪实现
2015-04-29 18:22 529看附件顶顶顶顶顶 -
Eclipse转AS必看设置
2015-04-26 00:01 1456常用设置: 1.Tab不用4个空格 Code Style-& ... -
android软键盘挤压界面的问题解决方法
2015-04-09 11:59 2856AndroidManifest.xml 中设置 android ... -
MultipleImagePick 从相册中选择图片,可以单选和多选。
2015-04-08 10:28 2116http://jcodecraeer.com/a/openso ...
相关推荐
在触摸事件处理中,计算手指按下和抬起时的位置差,判断是否达到滑动触发的阈值。如果超过阈值,开始执行删除操作。这里需要注意滑动方向的判断,可以使用`dy > 0`来检查是否为上滑,从而决定是否执行删除动作。 4...
然而,在实际应用中,我们经常遇到一个问题:当用户在ListView中滚动时,选中的条目(item)的CheckBox状态无法保持,即“listview滑动保存选中状态”。这个问题主要是由于ListView的复用机制导致的,为了解决这一...
通过以上步骤,我们就能在Android中实现一个基本的ListView滑动删除功能。不过,需要注意的是,随着Android框架的演进,现在更多地推荐使用RecyclerView,它提供了内置的ItemTouchHelper类,能方便地实现滑动删除等...
注意在切换Activity时保持数据的传递和状态的保存,以便在切换回来时能恢复到之前的状态。 在`GestureTest`这个项目中,我们可以推测这是一个测试滑动手势的示例,可能包含了实现上述功能的代码和配置。开发者可以...
- 可以添加撤销删除功能,通过使用临时堆栈保存被删除的条目信息,在用户需要时恢复。 - 支持左右滑动显示不同的操作,比如左侧滑动显示编辑按钮,右侧滑动显示删除按钮。 综上所述,实现ListView滑动显示删除按钮...
- **状态保存和恢复**:如果横向滑动涉及到状态(如ViewPager的当前页),需要考虑在ListView滚动时如何保存和恢复这些状态,以防止滚动过程中状态丢失。 综上所述,实现“在ListView中横向滑动的控件”涉及到对...
在这里,开发者可能使用了TabLayout或者自定义的TabView,使得Tab在滑动时能够悬浮显示,并且随着滑动位置改变而动态调整位置。 3. **滑动效果处理**: 实现浮动Tab的关键在于监听ListView的滑动事件。可以使用...
Android的AbsListView类(ListView的父类)提供了一个OnScrollListener接口,我们可以通过实现它的onScrollStateChanged()和onScroll()方法来获取滑动状态和位置信息。当用户开始滑动ListView时,我们可以启动一个...
四、保存和恢复选择状态 4.1 当应用被关闭或者ListView重新加载时,需要保存用户的选中状态。可以使用SharedPreferences或者数据库来存储这些信息。 4.2 在ListView初始化时,读取保存的状态并设置给CheckBox。这样...
在实际开发中,要注意性能优化,比如使用ViewHolder模式减少ListView的视图查找时间,以及合理使用Fragment的保存和恢复状态。同时,为了保证兼容性和用户体验,要关注不同Android版本和设备的差异,适时引入Support...
5. **状态保存与恢复**:在用户拖动后改变应用位置,系统需要能够保存这些更改并在下次启动时恢复。 接下来,"listview下拉加载"是常见的无限滚动加载策略,主要用于大数据量列表的优化: 1. **ListView与Adapter*...
9. **状态保存与恢复**:在Activity的生命周期中,需要考虑删除状态的保存和恢复。例如,当Activity因配置更改而重建时,应恢复之前的状态,包括已删除的item。 10. **异常处理**:在执行删除操作时,应捕获可能...
总的来说,这个毕业设计项目涵盖了Android开发中的多个核心知识点,如ListView的使用、事件处理、横竖屏切换、自定义适配器以及状态保存和恢复等。通过实践和研究这样的项目,开发者不仅可以提升Android编程技能,还...
- 当设备旋转时,确保ListView的横屏状态能够正确保存和恢复。这可能需要在Activity或Fragment中处理配置更改。 8. **测试与调试**: - 在实际设备和不同分辨率的模拟器上进行广泛的测试,确保横屏滑动功能在各种...
- 确保当ListView滚动时,CheckBox和EditText的状态能够正确地保存和恢复,以保持用户在滚动时看到的视图与实际数据一致。 7. **优化性能**: - 使用ViewHolder模式可以减少findViewById的调用,提高ListView的...
7. **数据存储与恢复**:如果应用需要记住用户的选定状态,可以将当前选择的省份和城市保存到SharedPreferences或数据库中,然后在应用启动时读取并恢复选择。 8. **测试与调试**:在实现联动效果后,进行充分的...
在ListView滚动时,需要确保滑动状态能正确保存和恢复。当一个列表项被滑出屏幕后再次出现,其滑动状态应保持一致。 6. **性能优化**: 使用convertView机制来重用视图,避免在滑动时频繁创建新的View对象。同时...
通过以上步骤,你就能在你的Android应用中实现ListView的单选和多选功能。理解ListView的工作原理和Adapter模式是关键,同时,熟练运用各种UI组件(如RadioButton和CheckBox)以及处理用户的交互事件也是必不可少的...
因此,我们需要确保在Item的复用过程中,动画状态可以正确地保存和恢复。 其次,要实现动画效果,可以利用Android的ValueAnimator或者ObjectAnimator来控制Item的变形效果。这些类允许开发者随着时间线改变某个属性...
5. **状态保持**:在用户滑动过程中,若ListView因为滚动或其他原因改变了位置,需要保存和恢复滑动状态。可以通过Adapter中的数据结构来记录每个列表项的状态,当ListView重新绘制时,根据这些状态调整视图。 6. *...