android - 清除适配器然后添加项目,修复错误

标签 android android-listview

我有一个 ListView 。我需要在条件(true)的情况下在 listView 上添加项目。我尝试清除适配器,然后添加正确的项目。并且还尝试删除错误的项目。但似乎我错过了一些东西。 帮助我找到我缺少的东西。

这是主要 Activity

protected void onCreate(Bundle savedInstanceState)
{

    super.onCreate(savedInstanceState);
    setContentView(R.layout.favorite_tab);

    list = (ListView) findViewById(R.id.listView1);
    mAdapter = new FavoriteListAdapter(this);

    list.setAdapter(mAdapter);
    getFavoriteChapt();
    list.setOnItemClickListener(this);

}

public void getFavoriteChapt()
{
    mAdapter.clear();
    for (int i = 0; i < 17; i++)
    {
        if (DataStore.getHierarchicalChapters().getSubChapters().get(i)
                .isFavorite() == true)
            mAdapter.add(DataStore.getHierarchicalChapters()
                    .getSubChapters().get(i));
    }
    mAdapter.notifyDataSetChanged();
}

还有我的自定义适配器

    @Override
public View getView(int position, View convertView, ViewGroup parent)
{

    View row = convertView;

    if (row == null)
    {
        LayoutInflater inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        row = inflater.inflate(R.layout.favorite_tab_list_view_row, parent,
                false);
        ViewHolder viewHolder = new ViewHolder();
        viewHolder.text_view_sura_name = (TextView) row
                .findViewById(R.id.searchChapterTextViewId);

        row.setTag(viewHolder);
    }
    ViewHolder viewHolder = (ViewHolder) row.getTag();

    viewHolder.text_view_sura_name.setText(Integer.toString(position)
            + DataStore.getHierarchicalChapters().getSubChapters()
                    .get(position).getTitle());

    return row;
}

最佳答案

这是我最喜欢的章节

private ArrayList<Chapter> getFavortiveChapters()
{
    ArrayList<Chapter> chapter = new ArrayList<Chapter>();

    for (int i = 0; i < 17; i++)
    {
        if (DataStore.getHierarchicalChapters().getSubChapters().get(i)
                .isFavorite())
            chapter.add(DataStore.getHierarchicalChapters()
                    .getSubChapters().get(i));          
    }
    return chapter;
}

和 View

viewHolder.chapterName.setText(getFavoriveChapters().get(position).getTitle());

问题解决了:)

关于android - 清除适配器然后添加项目,修复错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9262143/

相关文章:

android - 您如何访问 Android 凭据存储?

android - 尽管使用弱引用内存泄漏

java - 使用 ArrayAdapter 通过自定义适配器将动态图像添加到 ListView

Android 可扩展 ListView - onClickListener 用于具有持久状态的子项中的按钮

java - 使类可变

android - 如何使用 kotlin 语言以编程方式从 Android 中的 SIM 卡获取手机号码?

android - 处理触摸事件 - onInterceptTouchEvent 和 onTouchEvent

Android 图片发送 Intent

android - 如何删除 MediaPlayer?

android - 使用 asyncTask 填充 ListView