2

にカスタムArrayAdapterセットがありlistViewます。の各要素内に、listView作成した .xml に一致するアイテムがあります。以下に示すコード:

listContent.xml

<RelativeLayout
[... some code ommited]
    <ImageView
    [...]
    <TextView
    android:id="@+id/listViewText"
    [...]

カスタム配列アダプター getView(int 位置、View convertView、ViewGroup 親)

if (position < 4)
{
    convertView = inflater.inflate(R.layout.listContent,null);

    TextView tv = (TextView) findViewById(R.id.listViewText);

    tv.setTextSize(18);
    if (position == 0) tv.setText("0");
    else if (position == 1) tv.setText("1");
    else if (position == 2) tv.setText("2");
    else if (position == 3) tv.setText("3");

    return convertView;
}
return null;

これを機能させることができないようです。常にエラーが発生します。TextViewlistView アイテム内を編集するにはどうすればよいですか?

4

2 に答える 2

1

変化する

TextView tv = (TextView) findViewById(R.id.listViewText);

TextView tv = (TextView) convertView.findViewById(R.id.listViewText);

これを削除します

if (position < 4)
于 2012-12-12T13:00:58.340 に答える
1

カスタム配列アダプターの getView コードを次のように変更します。

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

 View row = convertView;

 if(row==null){
  LayoutInflater inflater=getLayoutInflater();
  row=inflater.inflate(R.layout.listContent, parent, false);
 }

 TextView tv=(TextView)row.findViewById(R.id.listViewText);


tv.setTextSize(18);
    if (position == 0) tv.setText("0");
    else if (position == 1) tv.setText("1");
    else if (position == 2) tv.setText("2");
    else if (position == 3) tv.setText("3");

 return row;
}
于 2012-12-12T12:54:48.860 に答える