- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试实现一个自定义 ListView,其中包含分隔符。这是代码:
单标题:
public class SingleTitle {
String mTitle;
int[] mInterval;
public SingleTitle(String title, int[] interval) {
mTitle = title;
mInterval = interval;
}
public String getTitle() {
return mTitle;
}
public int[] getInterval() {
return mInterval;
}
}
标题类别:
public class TitleCategory {
String mTitle;
public TitleCategory(String title) {
mTitle = title;
}
public String getTitle() {
return mTitle;
}
}
list_category_divider.xml:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<include
android:id="@+id/list_item_section_text"
layout="@android:layout/preference_category" />
</ LinearLayout >
返回列表的方法:
public static List<Object> getStructuredTitles(Context context) {
List<Object> list = new ArrayList<Object>();
String[] mTitles = getCategoriesTitles(context);
String[] mParts = getPartsTitles(context);
list.add(new TitleCategory(mParts[0]));
list.add(new SingleTitle(mTitles[0], CATEGORIES_INTERVALS[0]));
list.add(new TitleCategory(mParts[1]));
list.add(new SingleTitle(mTitles[1], CATEGORIES_INTERVALS[1]));
list.add(new SingleTitle(mTitles[2], CATEGORIES_INTERVALS[2]));
list.add(new SingleTitle(mTitles[3], CATEGORIES_INTERVALS[3]));
list.add(new SingleTitle(mTitles[4], CATEGORIES_INTERVALS[4]));
list.add(new TitleCategory(mParts[2]));
list.add(new SingleTitle(mTitles[5], CATEGORIES_INTERVALS[5]));
list.add(new SingleTitle(mTitles[6], CATEGORIES_INTERVALS[6]));
list.add(new SingleTitle(mTitles[7], CATEGORIES_INTERVALS[7]));
list.add(new SingleTitle(mTitles[8], CATEGORIES_INTERVALS[8]));
list.add(new SingleTitle(mTitles[9], CATEGORIES_INTERVALS[9]));
list.add(new SingleTitle(mTitles[10], CATEGORIES_INTERVALS[10]));
list.add(new TitleCategory(mParts[3]));
list.add(new SingleTitle(mTitles[11], CATEGORIES_INTERVALS[11]));
return list;
}
我的自定义适配器:
public class TitlesAdapter extends BaseAdapter {
private Context context;
private List<Object> entries;
public TitlesAdapter(Context context, List<Object> entries) {
this.context = context;
this.entries = entries;
}
@Override
public int getCount() {
return entries.size();
}
@Override
public Object getItem(int position) {
return entries.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Object entry = entries.get(position);
boolean isCategory = (entry instanceof TitleCategory);
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(isCategory ? R.layout.list_category_divider : R.layout.list_items_simple, null);
}
if (isCategory) {
TitleCategory tc = (TitleCategory)entry;
convertView.setClickable(false);
Log.d("DBG", "Entry: " + position + " | " + tc.getTitle());
TextView tv = (TextView) convertView.findViewById(android.R.id.simple_list_item_2);
if (tv != null) tv.setText(tc.getTitle());
} else {
SingleTitle tc = (SingleTitle)entry;
Log.d("DBG", "Entry: " + position + " | " + tc.getTitle());
TextView tv = (TextView) convertView.findViewById(android.R.id.text1);
if (tv != null)
tv.setText(tc.getTitle());
}
return convertView;
}
public List<Object> getList() {
return entries;
}
public void setList(List<Object> newentries) {
entries = newentries;
notifyDataSetChanged();
}
}
我的问题:该应用程序最初很好地绘制了列表,但是当我上下滚动列表时,它会弄乱条目。然而,logcat 中生成的输出是正确的,但 Android 弄乱了列表。有什么想法吗?
更新:
最佳答案
尝试实现getViewTypeCount()
。在你的情况下它应该返回 2。
@Override
public int getViewTypeCount() {
return 2;
}
如果未实现该方法,Android 可能会对单个 View 类型做出一些假设。
还重写 getItemViewType(intposition)
以使其根据列表中的索引是否为 ' 返回 0
或 1
类别”或“标题”。
@Override
public int getItemViewType(int position) {
...
}
关于java - 带分隔符的自定义 ListView 变得疯狂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10164962/
在 MySQL 8.0.21 上,我有一个空表 ( Tbl ),只有一列: num , 类型 float . 我插入一行,值为 0.1 : INSERT INTO Tbl(num) VALUES(0.
我一直在阅读 Swing 教程“如何使用表”,尽管它对 JTable 新手来说提供了很多信息,但我在尝试转向时立即遇到了障碍示例并自行解决。 因此,如果您希望您的 Swing 应用程序拥有漂亮的自定义
首先,请原谅,因为我对这个有点陌生,所以我的代码看起来不太漂亮......但下面的一切都有效,## 这不是一个寻求非工作代码帮助的线程##. 现在那已经不碍事了……事情是这样的:我已经为 FF 制作了
我已将 1-1 这段代码从 C++/OpenGL 移植到 C# SharpGL: float[] cameraAngle = { 0, 0, 0 }; float[] cameraPo
背景: 我在一台旧笔记本电脑上运行。我总共只有 512Mo 可用 128Mo ram。没钱买更多的 ram。 我使用 mmap 来帮助我规避这个问题,而且效果很好。C代码。Debian 64 位。 问
这是一个奇怪的。 重命名类后,我的一个表单开始在设计器中出现错误,拒绝打开。有趣的是,当我运行该程序时,该表单运行良好。 我开始恢复我的更改以推断问题所在。我现在已经完全恢复到上次提交 - 我知道表单
我有一个项目列表,上面有不同的事件处理程序。 ... Item ... Add to list A Add to list B
我有一个静态 View ,它是一个设置 View 。它有 3 个部分 section 1 has 3 rows section 2 has 1 row section 3 has 1 row 我在每一
我大概花了一个月的时间在互联网上研究这个问题,但还没有找到答案。我的代码执行以下操作(所有 Javascript)。 假设我在 mydomain.com 上有一个 test.html 首先在 head
谁能解释一下 prototype.init 函数在 JavaScript 中的意义以及它在对象实例化过程中何时被调用? 为什么要用空函数覆盖它? 我正在阅读 JavaScript for Web 这本
我喜欢 MVVM。我不喜欢它,但喜欢它。其中大部分是有道理的。但是,我一直在阅读鼓励您编写大量代码的文章,这样您就可以编写 XAML 而不必在代码隐藏中编写任何代码。 我举个例子。 最近我想将我的 V
我遇到了一个问题,我确信许多新/初级 Web 开发人员都面临着这个问题。在陈述问题之前,最好先列出导致我出现“问题”的事件。 第 1 步 - 前端:我遵循的教程允许我使用 vue-cli 创建一个 V
所以,我做了很多搜索和摆弄,但找不到解决方案。也许我的情况很独特——或者更有可能我只是不知道我到底在做什么。我比刚开始时更接近了,所以这令人振奋。不管怎样 - 我们来了智囊团 - 非常感谢任何帮助。
iTunes connect 一直拒绝我的二进制文件进行应用程序更新,这让我发疯。通常我可以弄清楚,但我已经尝试了我能想到的一切。也许有人可以伸出援助之手:) 我得到的错误是: The binary
嗯,George Boole 的骨架一定在它的坟墓里感到有些疼痛,因为我的 bool 人刚刚变得疯狂并开始举办派对。我真的认为他们想反抗我。 现在更严重了:可能我在 $watch 方法中遗漏了一些东西
我有一个ul、链表元素和无链接的li。 Home Test1 second_level
为此搜索了答案,但找不到任何内容。我能找到的最接近的是 difftime returning 0 when there is clearly a difference其中有一个很好的解释,与如何将参数
Closed. This question is opinion-based。它当前不接受答案。
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 6 年前。 Improve t
所以...我的问题有点奇怪。我有一个简单的 UIToolbar 被添加到在 viewDidLoad 时间调用的 navigationController 的 View 层次结构中。听起来很简单,对吧?
我是一名优秀的程序员,十分优秀!