在Listview中格式化textview

时间:2011-11-11 23:11:49

标签: android listview textview strikethrough

我有一些包含一些项目的ListView。我想设置ListView,其中一些项目是删除线。我知道如何使用onclicklistener来创建它,但是我想加载已经标记了删除项的ListView。

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

first / strikethrough /

第二

第三

第四/删除/

2 个答案:

答案 0 :(得分: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;
    }
}

答案 1 :(得分:0)

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

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

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