Articles of listview

检测ListView上的手势有问题

我有一个包含ViewFlipper的Activity。 ViewFlipper包含2个布局,这两个布局基本上只是ListViews。 所以这里的想法是我有两个列表,从一个列表导航到另一个列表,我会使用水平滑动。 我有那个工作。 但是,当滑动开始执行时,您的手指所在的列表项目,也会长按该项目。 这是我的相关代码: public class MyActivity extends Activity implements OnItemClickListener, OnClickListener { private static final int SWIPE_MIN_DISTANCE = 120; private static final int SWIPE_MAX_OFF_PATH = 250; private static final int SWIPE_THRESHOLD_VELOCITY = 200; private GestureDetector mGestureDetector; View.OnTouchListener mGestureListener; class MyGestureDetector extends SimpleOnGestureListener { @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, […]

从多个选择ListView返回值

编辑:好的,我find了解决方案。 不知道这是正确的解决方案,但它确实可以正常工作。 添加到下面的代码中。 我正在尝试允许用户从核对表中选择多个目录,并在单击“提交”按钮时返回它们。 这是我的代码片段。 它使用/ sdcard /上的所有目录填充ListView,并且当我提交时,对于初始选择(无论我选择多少),日志显示返回的正确选项。 但是,如果我取消选中某个项目,然后再次点击“提交”,它仍然会显示所有项目都被选中。 我是否需要编写处理程序来取消选中项目? 我认为这是由选择模式选择照顾的? 谢谢! private SparseBooleanArray a; directoryList.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_multiple_choice, directoryArray)); submitButton = (Button)findViewById(R.id.submit_button); submitButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { a = new SparseBooleanArray(); a.clear(); a = directoryList.getCheckedItemPositions(); for (int i = 0; i < a.size(); i++) { //added if statement to check for […]

像Android邮件应用程序一样在Android上滑动ListView项目

我开始使用Android开发,我试图创建一个像这个图像一样的ListView项: 。 在最后一步,用户可以点击“更多”或“删除”,另一个视图将像最后一步一样停留在那里,用户将能够向右滑动以将视图放回到该位置 我已经尝试过使用一些关于轻扫的教程来解雇,但我无法完成这项工作。 有谁知道任何框架或某种方式来做到这一点?

ListView保持选中状态?

我有一个包含项目的列表视图,在用户选择一个项目点亮后,它会恢复正常。 有没有办法让它在用户选择ListView中的项目时保持选中状态并突出显示?

ListView中可点击区域的宽度w / onListItemClick

我正在尝试将ListView项目放入ListView中。 目前它们是可点击的(请参阅我的屏幕截图),但它们只能在文本占用的矩形内单击。 我正在使用protected void onListItemClick(ListView l, View v, int position, long id) {用于可点击列表项。 这是我的list.xml: 和我的row.xml: 这里是截图示例 :(不允许新用户发布图片……发牢骚……有超链接!) 在list.xml中,Listview具有android:layout_width =“fill_parent”,因此它应该是屏幕的整个宽度。 (row.xml中的所有项目也是width =“fill_parent”。)我缺少什么?

Android ListView – 停止在“整个”行位置滚动

对不起令人困惑的标题,我不能非常简洁地expression问题… 我有一个带有ListView的Android应用程序,它使用循环/“无限”适配器,这基本上意味着我可以根据需要向上或向下滚动它,当它到达顶部或底部时,项目将会环绕,使它看起来像对于用户而言,好像他正在旋转无限长的(~100)重复项目列表。 这种设置的目的是让用户选择一个随机项,只需旋转/推送列表视图并等待它停止的位置。 我减少了Listview的摩擦力,因此它的速度更快,更长,这看起来非常好用。 最后,我在ListView的顶部放置了一个部分透明的图像,以阻挡顶部和底部项目(从透明到黑色的过渡),使得看起来好像用户正在“选择”中间的项目,就好像他们他们在一个旋转的“轮子”上,他们通过投掷来控制。 有一个明显的问题:在投掷后,ListView不会停留在特定项目上,但它可以停止在两个项目之间hover(其中第一个可见项目仅部分显示)。 我想避免这种情况,因为在这种情况下,“随机选择”哪个项目并不明显。 简而言之:在ListView完成滚动后滚动之后,我希望它停在“整个”行上,而不是停留在部分可见的行上。 现在我通过检查滚动何时停止,然后选择第一个可见项来实现此行为,如下所示: lv = this.getListView(); lv.setFriction(0.005f); lv.setOnScrollListener(new OnScrollListener() { public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {} public void onScrollStateChanged(AbsListView view, int scrollState) { if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) { if (isAutoScrolling) return; isAutoScrolling = true; int pos = lv.getFirstVisiblePosition(); lv.setSelection(pos); isAutoScrolling = false; } } […]

滚动时如何将数据从服务器加载到listview?

我有一个列表视图,显示图像和文本。 我希望一次显示8个listview行,从服务器下载数据。 当用户滚动列表视图时,我需要从服务器下载更多数据并在列表视图中显示这些项目。 我使用AsyncTask从服务器下载数据。 @Override protected Void doInBackground(Void… params) { getData();// get data first time. 8 data items. return null; } @Override protected void onPostExecute(Void result) { super.onPostExecute(result); pd.dismiss(); lv= (ListView) findViewById(R.id.lvn); yt = new YouTubeAdapter(Youtube.this,msg,title,thumb); lv.setAdapter(yt); lv.setOnScrollListener(new EndLessScroll()); } 获取数据代码 public void getData() { HttpClient httpclient = new DefaultHttpClient(); httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1); HttpGet request = […]

如何在适配器内使用ButterKnife

我想使用ButterKnife绑定我在listView adpater中的视图。 我尝试过这个,但我不能简单地使用我的“旋转器”var。 public class WarmSpinnerAdapter extends ArrayAdapter { Context context; public WarmSpinnerAdapter(Context context, int resource, Warm[] objects) { super(context, resource, objects); } @Override public View getView(int position, View convertView, ViewGroup parent) { View v = LayoutInflater.from(context).inflate(R.layout.item_spinner, null); return v; } @OnClick(R.id.spinner) public void onClick() { //open dialog and select } static class ViewHolder { […]

带有OnItemClickListener和GestureDetector的Android ListView

我有以下ListActivity: public class ShowDayActivity extends ListActivity implements OnItemClickListener { private GestureDetector gestureDetector; private View.OnTouchListener gestureListener; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.day); registerForContextMenu(getListView()); gestureDetector = new GestureDetector(new MyGestureDetector()); gestureListener = new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { return gestureDetector.onTouchEvent(event); } }; getListView().setOnItemClickListener(this); getListView().setOnTouchListener(gestureListener); } @SuppressWarnings(“static-access”) @Override public boolean onOptionsItemSelected(MenuItem item) […]

Android:EditText在ListView中滚动丢失内容?

我有包含EditText列表项,我不知道会有多少项。 我在EditText输入一些文本,然后向下滚动ListView后出现问题,在我再次向上滚动后,我的第一个EditText没有文本,或者ListView有来自其他EditText文本。 我已经尝试过TextWatcher ,并将数据保存到数组中,但问题是ListView中返回的视图位置并不总是正确的,所以我从数组中丢失了一些数据。 请帮忙。 这是我的代码: public class EfficientAdapter extends BaseAdapter { private LayoutInflater mInflater; public String[] Current; ArrayList MeterName, PreviousReading, Current_Reading; JSONArray getArray_Meter_Reading; public EfficientAdapter(Context context, JSONArray getArray_Meter_Reading) { mInflater = LayoutInflater.from(context); this.getArray_Meter_Reading = getArray_Meter_Reading; MeterName = new ArrayList(); PreviousReading = new ArrayList(); for (int i = 0; i < getArray_Meter_Reading.length(); i++) { try […]