Articles of 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 […]

如何在警告对话框中膨胀包含listview的布局?

我在布局中使用带有自定义适配器的listview。 现在我想把包含列表的布局带到我的alertdialog。 我尝试将不包含列表的简单布局带到此代码的警告对话框,并且它运行良好。 但我无法将包含布局的列表带入alertdialog。 AlertDialog.Builder dialog = new AlertDialog.Builder( this ); dialog.setView( getLayoutInflater().inflate( R.layout.smill, null ) ); dialog.setIcon(R.drawable.androidsmile); dialog.setInverseBackgroundForced(true); dialog.setTitle( “Select smiley”); dialog.setPositiveButton( “Cancel”, null ); dialog.show();

片段中的ArrayAdapter – Android

我得到一些错误,我不知道为什么。 我正在使用片段中的字符串填充数组适配器的ListView。 我正在使用此片段作为主屏幕显示在主要活动中这是我的代码 public class HomePage extends Fragment { private ListView lvHomePage; private String[] items; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_home_page, container, false); items = getActivity().getResources().getStringArray(R.array.test); lvHomePage = (ListView) getActivity().findViewById(R.id.lvHomePage); lvHomePage.setAdapter(new ArrayAdapter(getActivity().getApplicationContext(), android.R.layout.simple_list_item_1 , items)); return view; } } 我收到此输出错误: 09-18 21:07:27.315: E/AndroidRuntime(3839): FATAL EXCEPTION: main 09-18 […]

如何在检索ListView的项目时显示“正在加载…”文本

还有其他一些应用程序正在这样做,如Twitter,Facebook,甚至是Android Market等本机应用程序。 当您想要显示从互联网检索到的项目列表时,这看起来像是向用户显示有关正在进行的操作的一些通知的标准方式。 这是一个白色背景屏幕,带有animation旋转轮和“正在加载…”文本。 有人知道怎么做吗? 我已经能够用这段代码做类似的事了,但我还是不太喜欢它。 仍在进行中: