【问题标题】:format textview in Listview在 Listview 中格式化 textview
【发布时间】:2011-11-11 23:11:49
【问题描述】:

我有一个包含一些项目的 ListView。我想设置 ListView 一些项目是删除线。我知道如何使用 onclicklistener 来制作它,但我想加载带有已标记删除线项目的 ListView。

所以我启动了我的程序,效果应该是这样的:

第一个/删除线/

第三

第四个/删除线/

【问题讨论】:

  • 您是在问如何制作文本删除线,或者如何自定义列表视图?
  • 我在问如何自定义我的列表视图,我知道如何使文本删除线

标签: android listview textview strikethrough


【解决方案1】:

要自定义您的列表视图,您可能需要创建一个自定义 ListView ArrayAdapter,它将加载您的文本视图并将其设置为删除线:

private class ResultsAdapter extends ArrayAdapter<Route> {

    private ArrayList<Route> items;

    public ResultsAdapter(Context context, int textViewResourceId, ArrayList<Route> items) {
        super(context, textViewResourceId, items);
        this.items = items;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View v = convertView;
        if (v == null) {
            LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = vi.inflate(R.layout.route_row, null);
        }
        Route res = items.get(position);
        if (res != null) {
            TextView line1 = (TextView) v.findViewById(R.id.route_line1);
//setup your strikethrough as needed.

            }

        }
        return v;
    }
}

【讨论】:

    【解决方案2】:

    如果您从 SimpleAdapter 加载数据,请覆盖 SimpleAdapter.setViewBinder 方法。当您执行 ListView.SetAdapter(SimpleAdapter) 以使用来自 SimpleAdapter 的数据填充您的 Listview 时使用此方法。覆盖此方法以删除所需的行,但请确保包含以下代码行:

    TextView tv=(TextView) aView;
    tv.setText(aCursor.getString(aColumnIndex));
    

    这些是为了确保您的列表视图项目文本出现。

    【讨论】:

    • 我可以添加 DbAdapter db,但我无法添加 db = new DbAdapter(this),错误构造函数 DbAdapter(MyCustomAdapter) 未定义。 MyCustomAdapter 的构造函数中的 this.db = (DbAdapter) 上下文没有解决我的问题。我必须有权访问我的数据库
    • 你能分享一下你用来加载数据到ListView的代码吗
    • pastebin.com/zV6Ysm31 调用 db.read_lista_produkty_array(id_listy, id_sklepu) 时出错 -> java.lang.NullPointerException。通常,此功能运行良好。问题是由 DbAdapter -> db = new DbAdapter(this.context);上下文有问题,希望您能提供帮助。
    • 您可以尝试将this.context 替换为getApplicationContext()this
    • 我试过没有结果,我通过向类构造函数添加一个参数解决了我的问题。现在不需要创建类 DbAdapter 的对象。
    猜你喜欢
    • 2017-02-22
    • 2018-12-30
    • 2020-04-28
    • 1970-01-01
    • 2015-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-09
    相关资源
    最近更新 更多