0

私はAndroidプロジェクトに取り組んでいます。ここで、独自の展開可能なリストを作成する必要があります。これは私が従う解決策です:

私が取り組んでいる展開可能なリストのソースコードへのリンク

そして、それがTextViewを生成するコードです(リストの要素です)。この TextView の代わりに android.R.layout.simple_expandable_list_item アイテムのようなものを作成したいと思います。左側に画像を配置し、次にテキストを配置することを意味します。どうすればそれができますか?

Button を試してみて、Button に左のアイコンを設定しましたが、役に立ちませんでした。ボタンでリストが展開/折りたたまれません。

 @Override
              public View getGroupView(int groupPosition, boolean isExpanded,
                           View convertView, ViewGroup parent) {
                     TextView tv = new TextView(Vincent_ThreeelevellistActivity.this);
                     tv.setText("->FirstLevel");
                     tv.setTextColor(Color.BLACK);
                     tv.setTextSize(20);
                     tv.setBackgroundColor(Color.BLUE);
                     tv.setPadding(10, 7, 7, 7);
                     return tv;

              }
4

2 に答える 2

0

このように使用する必要があります。このコードは単なる例です。パラメータを変更せず、それに応じてコードを実装してください。

@Override
       public View getGroupView(int position, View convertView, ViewGroup parent) {   

       ViewHolder holder = null;
       TextView title = null;
       TextView detail = null;
       ImageView i11=null;
       RowData rowData= getItem(position);
       if(null == convertView){
            convertView = mInflater.inflate(R.layout.list, null);
            holder = new ViewHolder(convertView);
            convertView.setTag(holder);
 }
             holder = (ViewHolder) convertView.getTag();
             title = holder.gettitle();
             itle.setText(rowData.mTitle);
             detail = holder.getdetail();
             detail.setText(rowData.mDetail);                                                     

             i11=holder.getImage();
             i11.setImageResource(imgid[rowData.mId]);
             return convertView;
}
            private class ViewHolder {
            private View mRow;
            private TextView title = null;
            private TextView detail = null;
            private ImageView i11=null; 

            public ViewHolder(View row) {
            mRow = row;
 }
         public TextView gettitle() {
             if(null == title){
                 title = (TextView) mRow.findViewById(R.id.title);
                }
            return title;
         }     

         public TextView getdetail() {
             if(null == detail){
                  detail = (TextView) mRow.findViewById(R.id.detail);
                    }
           return detail;
         }
        public ImageView getImage() {
             if(null == i11){
                  i11 = (ImageView) mRow.findViewById(R.id.img);
                                      }
                return i11;
        }
     }
于 2013-05-17T08:47:59.717 に答える
0

あなたの質問はそれほど明確ではありません。しかし、私が理解したことから、ここに私の解決策があります。

オプション 1 : xml でカスタム レイアウトを作成し、それを膨らませて getGroupView から返すことができます。

Option2 : textview アイテムに CompoundDrawable を設定して、その横に画像を表示することができます。

下矢印マークをカスタマイズする場合は、展開可能なリストビューに android:groupIndicator を設定できます。

于 2013-05-17T08:49:38.850 に答える