2016-06-26 4 views
-1

私はexpandableListビューを持っています。その子はハッシュマップから作成されます。私がしようとしているのは、ハッシュマップからキーの最初と最後の子のビューを表示し、次に他のもののために非表示にしたいということです。現在、私は次の方法でこれを達成しようとしており、動作していません。以下に、私のEpandableListAdapterクラスのgetChildViewメソッドを挙げます。ハッシュマップでキーの最初と最後の子を特定する方法は?

@Override 
    public View getChildView(int groupPosition, final int childPosition, 
          boolean isLastChild, View convertView, ViewGroup parent) { 

     final String childText = (String) getChild(groupPosition, childPosition); 


     LinearLayout titleLayout = null; 
     LinearLayout sumTotalLayout = null; 
     if (convertView == null) { 
      LayoutInflater infalInflater = (LayoutInflater) this._context 
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      convertView = infalInflater.inflate(R.layout.order_form_history_viewable, null); 
      titleLayout = (LinearLayout) convertView.findViewById(R.id.llOrderHistroryTitles); 
      sumTotalLayout = (LinearLayout) convertView.findViewById(R.id.llOrderHistroryTotals); 
     } 


     if (childPosition==0 && titleLayout != null) { 
      titleLayout.setVisibility(View.VISIBLE); 
     } else if (titleLayout != null) { 

      titleLayout.setVisibility(View.GONE); 
     } 

     // int childSize = this._listDataChild.get(this._listDataHeader.get(groupPosition)) 
       .size(); 
     if (isLastChild && sumTotalLayout != null) { 
      sumTotalLayout.setVisibility(View.VISIBLE); 
     } else if (sumTotalLayout != null) { 
      sumTotalLayout.setVisibility(View.GONE); 
     } 
//  if (childPosition == childSize-1 && sumTotalLayout!=null){ 
//   sumTotalLayout.setVisibility(View.VISIBLE); 
//  }else if (sumTotalLayout!=null){ 
//   sumTotalLayout.setVisibility(View.GONE); 
//  } 


     TextView txtListChild = (TextView) convertView 
       .findViewById(R.id.tvOrderlistBrand); 

     txtListChild.setText(childText); 
     return convertView; 
    } 
+0

プレーンハッシュマップは保証された順序を持っていません。 'LinkedHashMap'は行いますが、それは別の問題です。あなたは何を期待していましたか? 「うまくいきません」とはどういう意味ですか? –

+0

あなたは(convertView == null)かどうかを確認していますが、covertViewがnullと等しくないときはelse部分はどこですか? –

+0

現在のところ、子の位置を確認していて、childPositionパラメータが0の場合は最初の子です。最後の子については、ブール値のパラメータisLastChildを検討しています。このプロセスは機能しておらず、私が望む結果が得られません。可能であれば、上記の方法を参照してください – user3393926

答えて

0

あなたはif (convertView == null)をチェックしているが、covertViewはnullに等しくないとき、すなわちのための他の部分はありません。それを置くようにしてください、それは動作します。

関連する問題