Articles of listview

根据Device使用的布局动态使用ListView或GridView

我正在我的应用程序中创建一个活动来显示一堆数据,特别是地方。 将有地名,远离用户的距离以及随附的图像。 所有这一部分我都已整理好了。 我想在不同的设备上以不同的方式显示此信息。 在较小的设备上,例如手机,我希望它们显示在1列列表中,图像显示在左侧,名称和距离显示在右侧。 我已经使用ListView进行了此设置。 但是,在较大的平板电脑上,我想将其显示在网格中,图像是整个单元格(正方形),图像顶部是文本。 什么是最好的方法。 它是2个布局,一个ListView和一个GridView ,以及Activity.java文件将如何检测哪些存在并相应地格式化数据? 或者我可以使用GridView并根据屏幕大小动态设置列?

我的列表视图不填充父级

<RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent" 一切都在ScrollView中,我不知道为什么但是相对布局似乎设置了一个包装内容。 它使ListView变小,而不是占据整个地方。 我不知道它是否有用,但这是我的java代码: public class ShowView extends Activity{ ListView lv; ArrayAdapter adapter; String[] myList = {“One”, “Two”, “Three”, “Four”, “Five”, “Six”, “Seven”, “Height”, “Nine”, “Ten”}; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.show); lv = (ListView) findViewById(R.id.list_test); adapter = new ArrayAdapter(getApplicationContext(), android.R.layout.simple_list_item_1, myList); adapter.setDropDownViewResource(android.R.layout.simple_list_item_1); lv.setAdapter(adapter); } }

除使用字符串之外的ListAdapterfilter?

似乎可Filterable的Adapter的用例是通过可能由用户在EditText输入的String或CharSequence进行过滤,但这是否是平台为过滤Adapter提供的唯一标准? 如果我有一个可以分类的对象的后备数据结构怎么办? 例如,如果我有一个具有enum属性, color的Shirt对象列表怎么办? 用户应该能够从可用color列表中过滤衬衫列表。 作为一个优秀的应用程序开发人员,我想使用内置过滤机制的平台,但我能find的就是这个Filter使用像filter (CharSequence constraint)这样的方法filter (CharSequence constraint) 。 我肯定错过了什么。 我看到在我自己的自定义BaseAdapter实现这种过滤机制是多么简单,但感觉应该有一些内置的方法来做自定义filter。 任何人? 提前致谢。

阻止EditText在Activity启动时获得关注

我在Android中有一个Activity ,有两个元素: EditText ListView 当我的Activity启动时, EditText立即具有输入焦点(闪烁光标)。 我不希望任何控件在启动时具有输入焦点。 我试过了: EditText.setSelected(false); 没有运气。 如何在Activity开始时说服EditText不选择自己?

是否可以始终在列表视图中启用快速滚动?

我有一个列表视图,它使用实现SectionIndexer的适配器。 这与设置我的列表视图以启用快速滚动相结合,允许我以与在“活动”活动中相同的方式快速滚动列表。 但是,在一定数量的项目下,常规滚动显示而不是快速滚动( 在此确认)。 我的问题是,在Android 2.2中是否有一种方法– Froyo可以始终显示快速滚动。 我知道在Honeycomb中,有一种方法可以始终启用快速滚动 – setFastScrollAlwaysVisible()但我在Froyo中寻找一个。

如何将焦点设置在android中列表视图中的最后一个元素上

我在运行时在ListView中加载元素,并询问用户是否要在按钮点击上加载更多元素。我想要实现的是焦点应该是列表视图的最后一个元素而不是第一个元素。

Android:将列表视图项设置为“已选中”(突出显示)

在我的应用程序中,我想在平板电脑上执行类似于gmail应用程序的操作,在左侧有项目列表,在右边有一个包含该项目内容的片段,就像gmail app一样,这些内容在选择后正在下载。 点击一个项目后,我希望它保持高亮显示,直到我改变选择。 我达到了这个有效的地步,但只有当我在同一个项目上点击两次时,所以首先我点击,选择有效,然后项目回到’默认’状态,如果我再次点击它,选择器(对于选中)状态)是可见的。 这是我到目前为止: 1)选择器(listitem_background.xml) 2)对于列表项的顶部线性布局: android:background=”@drawable/listitem_background” (我尝试将其设置为listselector,以及) 3)这是ListView: 4)在代码部分我试着用这个: @Override public void onItemClick(AdapterView parent, View view, int position, long id) { view.setSelected(true); … } [编辑]事实上我注意到在屏幕右侧提交片段后选择丢失了。 如果我不提交片段,它就像一个魅力……我想我在选择器中需要这样的东西: 但显然不是这个……

当EditText增长时,ListView滚动到顶部

我在每个单元格中都有一个带有EditTexts的Listview 。 每当我将文本添加到EditText增长1行的点时, ListView滚动到顶部(通常通过这样做从视图中删除EditText )。 我发现了一些关于这个的问题,但他们似乎只有“黑客”作为答案,没有任何对我有用的东西。 在多行EditText中键入时,ListView会滚动到顶部 带有edittext的Listview – 自动滚动“下一步” 编辑:经过大量的研究,我发现这是因为editText正在resize,导致ListView布局的子视图,然后重置为顶部。 我希望find一种方法让EditText在同一个地方生长。 我试过这个是因为我在网上发现了一个建议但是,即使它将ListView保持在正确的高度,它也会清除EditText的焦点,我似乎无法通过requestFocus获取它。 private Stirng getTextWatcher(){ return new TextWatcher(){ @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {} @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void afterTextChanged(Editable s) { listView.setSelection(index); } } } 所以我需要的是: […]

如何在列表项中添加水平RecyclerView

实现的任务是我需要创建一个无限可滚动列表,它将水平和垂直滚动。 为此,我要做的是我在垂直ListView项目中集成了一个水平RecyclerView 。 这是正确的方法吗? 我尝试过其他解决方案,但滚动有一些问题。 问题是,当我尝试在列表项中实现RecyclerView ,项目不会被填充。 public class HorizontalAdapter extends RecyclerView.Adapter { List imageMedia; protected Constants.IMAGE_SIZE image_size = Constants.IMAGE_SIZE.Small; private Context context; public HorizontalAdapter(Context context) { super(); setHasStableIds(true); this.context = context; } @Override public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { return new ViewHolder(LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.horizontal_item, viewGroup, false)); } protected ImageMedia getItem(int position) { return imageMedia.get(position); } […]

计时器小部件ListView中不会更新计时器

我有一个显示计时器的app小部件。 定时器可以启动,停止或恢复。 在Android 8计时器上有时不打勾(50/50)。 一些用户在Android 7上抱怨这个问题,但我不能确定它是否是同一个问题。 在安装了Android 6的Nexus 5上,一切运行良好。 如果向下滚动列表视图(直到计时器不可见)并向上滚动 – 计时器开始计时。 如果我再将一个Chronometer放在ListView上方并启动 – 那么天文台计时器就会很好 ActivitiesRemoteViewsFactory public RemoteViews getViewAt(int position) { … RemoteViews remoteViews = new RemoteViews(mContext.getPackageName(), getItemLayoutId()); if (timeLog.getState() == TimeLog.TimeLogState.RUNNING) { remoteViews.setChronometer(R.id.widget_timer, SystemClock.elapsedRealtime() – (duration * 1000 + System.currentTimeMillis() – timeLog.getStartDate().getTime()), null, true); } else { long timerValue = SystemClock.elapsedRealtime() – duration * […]