-1

XMLレイアウトデザインからではなく、Javaコードのみを使用してレイアウトデザインを作成しました。私が使用したコードは次のとおりです

 public View getView(int position, View convertView, ViewGroup parent) {
  TextView tv = new TextView(mContext);
  tv.setText(hotelList.get(position).name);
  return tv;
  }

このためのレイアウトを作成するためのlayoutInflatorの使用方法。1つのリストアイテムにさらに2つのテキストビューが必要です。リスト全体には10の異なるリストアイテムが含まれています

このためのいくつかのコードを提供してください。感謝するのを手伝ってください

4

3 に答える 3

2

このレイアウトのXMLレイアウトを作成する方法を知っていると思います。したがって、XMLレイアウトを作成し、次のコードを使用してメインレイアウトのオブジェクトを取得します。

LinearLayout mainLayout=(LinearLayout) View.inflate(R.layout.yourlayout); //if yourlayout.xml is the name of the xml file you made and put in the layout folder.

レイアウトの子を取得するために、それTextViewがIDを持つtext場合、コードは次のようになります。

TextView textView=(TextView)mainLayout.findViewById(R.id.text);
于 2012-04-03T06:51:42.047 に答える
2

私は以前、静的クラスも持っていることでこれを経験しました。これをチェックしてください、それは役に立ちます:

@Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View rowView = convertView;


        if ( rowView == null) {

            LayoutInflater inflator = this._activity.getLayoutInflater();
            rowView = inflator.inflate(R.layout.todolistlisting, null);
            TodoListViewHolder viewHolder = new TodoListViewHolder();
            viewHolder._name        = (TextView) rowView.findViewById(R.id.tVTLName);           
            viewHolder._completed   = (TextView) rowView.findViewById(R.id.tVTLCCount);
            viewHolder._remaining   = (TextView) rowView.findViewById(R.id.tVTLRCount);
            rowView.setTag(viewHolder);

        }

        TodoListViewHolder holder = (TodoListViewHolder) rowView.getTag();
        VO_TodoList votodolist = this._items.get(position);         
        holder._name.setText(votodolist._title);            
        holder._completed.setText(votodolist._completed);
        holder._remaining.setText(votodolist._remaining);

        return rowView;     

    }

TodoListViewHolderここに私のビューコンポーネントホルダーがあります。あなたのようにTextView

于 2012-04-03T12:08:20.827 に答える
0

このようなインフレータを使用して、実行時にビューを追加できます

LinerLayout linearLayout = (LinearLayout)inflater.inflate(R.layout.news_categories_item, null);

TextView categoryValueTextView = (TextView)linearLayout.findViewById(R.id.news_category_item_value);

mMainLinearLayout.addView(categoryValueTextView);

ここでは、実行時に別の線形レイアウト(これはテキストビューのみを保持する単純な線形レイアウトです)にある1つのテキストビューを膨らませて、メインの線形レイアウトに追加しています。

getLayoutInflater()を使用して、アクティビティでインフレータオブジェクトを取得できます。また、アダプターでインフレーターを取得する場合は、アクティビティからアダプターのコンストラクターにインフレーターオブジェクトを渡す必要があります。

于 2012-04-03T06:57:14.497 に答える