获取适配器中的行

时间:2012-05-01 12:34:02

标签: android

我的ListView有ArrayAdapter。它有TextView和箭头图像。如果TextView有3行或更多行,我必须显示箭头图像,但如果行计数<必须隐藏3个箭头。 但实际上,在TextView绘制之前,适配器没有计算其行数。有任何想法吗?我需要带箭头的显示项目,取决于行数。

此代码不起作用(TextView仅在绘制后接收行数)

if(holder.text.getLineCount() < 3)
{
        holder.arrow.setVisibility(View.GONE);
}
else
{
        holder.arrow.setVisibility(View.VISIBLE);
}

1 个答案:

答案 0 :(得分:0)

您需要延迟代码的执行,直到文本更新为止。请尝试使用TextView::addTextChangedListener()事件:

holder.text.addTextChangedListener(new TextWatcher() {
    public void afterTextChanged(Editable target) {

        if(holder.text.getLineCount() < 3) {
             holder.arrow.setVisibility(View.GONE);
        }
        else {
             holder.arrow.setVisibility(View.VISIBLE);
        }

    }
    public void beforeTextChanged(CharSequence s, int start, int count, int after){}
    public void onTextChanged(CharSequence s, int start, int before, int count){}
});