1

アイテムを含むリストビューがあります。各アイテムは、editText とその他のコンポーネントを含む linearLayout です。

ここで、イベントを editText に関連付けたいと思います。特に、ユーザーによって変更されたかどうかを知る必要があります。

私の考えは、リストビューの customAdapter を作成し、そこでイベントを処理することです...続行する正しい方法ですか?

4

1 に答える 1

0

はい、カスタム アダプターを作成するのがよい方法です。

アダプター内getView()でイベントを処理し、それを使用してそれに応じてイベントに応答できます。

この素晴らしいチュートリアルのサンプル コードは次のとおりです。

public class MyListAdapter extends ArrayAdapter{

      private int resource;
      private LayoutInflater inflater;
      private Context context;

      public MyListAdapter ( Context ctx, int resourceId, Listobjects) {

            super( ctx, resourceId, objects );
            resource = resourceId;
            inflater = LayoutInflater.from( ctx );
      context=ctx;
      }

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

            /* create a new view of my layout and inflate it in the row */
            convertView = ( RelativeLayout ) inflater.inflate( resource, null );

            /* Extract the city's object to show */
            City city = getItem( position );

            /* Take the TextView from layout and set the city's name */
            TextView txtName = (TextView) convertView.findViewById(R.id.cityName);
            txtName.setText(city.getName());

            /* Take the TextView from layout and set the city's wiki link */
            TextView txtWiki = (TextView) convertView.findViewById(R.id.cityLinkWiki);
            txtWiki.setText(city.getUrlWiki());

            /* Take the ImageView from layout and set the city's image */
            ImageView imageCity = (ImageView) convertView.findViewById(R.id.ImageCity);
            String uri = "drawable/" + city.getImage();
            int imageResource = context.getResources().getIdentifier(uri, null, context.getPackageName());
            Drawable image = context.getResources().getDrawable(imageResource);
            imageCity.setImageDrawable(image);
            return convertView;
      }
}

コード全体のソースはここにあります

于 2013-05-07T16:16:55.243 に答える