0

私は今問題を抱えています!私はカスタム ListView を持っています。そこには 2 つの TextView 要素があります。ListView 要素の 1 つの 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

アダプタでは、このコードを試して2番目のテキストビューを非表示にすることができます。

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 に答える