0

我现在有问题!我有自定义 ListView,我有两个 TextView 元素。我想要 ListView 元素中的一个 TextView 的 setVisibility(TextView.gone)。我不知道该怎么做

编写一个示例,说明如何在此处隐藏 ListView 的所有项目的 TextView ienter 代码

列表显示:

<ListView
            android:id="@+id/listResultAvia"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_gravity="left"
            android:layout_weight="1"
            android:background="#ffffff"
            android:cacheColorHint="#ffffff"
            android:drawingCacheQuality="auto" >

            <!-- Preview: listitem=@layout/item -->
        </ListView>

ListVIew 的自定义项:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#fff" >
        <TextView
            android:id="@+id/textViewTimeResult"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Large Text"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textColor="#000000" />

        <TextView
            android:id="@+id/textViewTimeResult2"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Large Text"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textColor="#000000"/>
    </LinearLayout>

告诉我如何在 onCreate 中隐藏 textViewTimeResult2。如果我写:

TextView test = (TextView) findById(R.id.textViewTimeResult2);
test.setVisibility(TextView.GONE);

我的程序在启动时崩溃了。

添加:

我在下面使用答案,但现在我得到了空的 ListView。我该如何解决?

4

2 回答 2

3

在您的适配器中,您可以尝试使用此代码隐藏第二个文本视图。

public View getView(int position, View convertView, ViewGroup parent){
       convertView = mInflater.inflate(R.layout.your_custom_list_layout, null);
    TextView textOne = (TextView)convertView.findViewById(R.id.txtOne);
    TextView textTwo = (TextView)convertView.findViewById(R.id.txtTwo);

    textTwo.setVisibility(View.GONE);

    return convertView;
} 

添加: 您可以添加一个在您的内部切换的布尔值,onClick()然后修改getView();

    boolean hideTextTwo = false;

    onClick(View v){
      hideTextTwo = true;
      yourAdapter.notifyDatasetChanged();

    }


public View getView(int position, View convertView, ViewGroup parent){
    convertView = mInflater.inflate(R.layout.your_custom_list_layout, null);
    TextView textOne = (TextView)convertView.findViewById(R.id.txtOne);
    TextView textTwo = (TextView)convertView.findViewById(R.id.txtTwo);

if(hideTextTwo){
    textTwo.setVisibility(View.GONE);
}

    return convertView;
}
于 2012-05-04T08:09:49.300 回答
1

//在你的适配器中

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

        if (convertView == null) {
            inflater = context.getLayoutInflater();
            holder = new ViewHolder();
            convertView = inflater.inflate(R.layout.list_row, null);
            holder.first_line=(TextView) convertView.findViewById(R.id.textview_row1);

            holder.second_line=(TextView) convertView.findViewById(R.id.second_row);

            convertView.setTag(holder);
        }


//TODO: hiding the first_line in the listview 
            holder.first_line.setVisibility(View.GONE);
            holder.second_line.setText("");
return (convertView);
        }
于 2012-05-04T08:05:07.690 回答