0

GridViewこのコードを使用したときにコードを更新する方法cla.notifyDataSetChanged; notifyDataSetChangedアダプタークラスにメソッドを追加する方法を解決できないと言いますか? 私を助けてくださいあなたは何をしますか?私のアダプタークラスにはnotifyDataSetChangeメソッドがありません

public class fifthscreen extends Activity {
    private AQuery androidAQuery;
    CategoryListAdapter3 cla;
    androidAQuery = new AQuery(this);
    static ArrayList<String> Category_name = new ArrayList<String>();
    static ArrayList<String> Category_image = new ArrayList<String>();

    cla = new CategoryListAdapter3(fifthscreen.this);
    gidView.setAdapter(cla);

アダプタ クラス

public class CategoryListAdapter3 extends BaseAdapter {

    private Activity activity;


    private AQuery androidAQuery;


    public CategoryListAdapter3(Activity act) {
        this.activity = act;
    //  imageLoader = new ImageLoader(act);
    }

    public int getCount() {
        // TODO Auto-generated method stub
        return fifthscreen.Category_ID.size();
    }

    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return position;
    }

    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return position;
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        ViewHolder holder;
        androidAQuery = new AQuery(getcontext());
        if(convertView == null){
            LayoutInflater inflater = (LayoutInflater) activity
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(R.layout.viewitem2, null);
            holder = new ViewHolder();

            convertView.setTag(holder);
        }else{
            holder = (ViewHolder) convertView.getTag();
        }


        holder.txtText = (TextView) convertView.findViewById(R.id.title2);
        holder.imgThumb = (ImageView) convertView.findViewById(R.id.image2);

        holder.txtText.setText(fifthscreen.Category_name.get(position));


       androidAQuery.id(holder.imgThumb).image(fifthscreen.Category_image.get(position), true,true);

        return convertView;
    }
    private Activity getcontext() {
        // TODO Auto-generated method stub
        return null;
    }
    static class ViewHolder {
        TextView txtText;
        ImageView imgThumb;
    }

}
4

3 に答える 3

0

あなたの質問によると、私が理解したのは、notifyDataSetChanged()メソッドの正しい場所が必要だということです

解決策はnotifyDataSetChanged()アダプターのデータが変更されたときに使用されるため、最初に配列を埋めたときは静的であり、変更されないため、ここでは必要ありません。その後、あなたの論理によれば

static ArrayList<String> Category_name = new ArrayList<String>();
static ArrayList<String> Category_image = new ArrayList<String>();

それ以降の変更は電話する必要があります

cla.notifyDataSetChanged() 

これにより、リストビューが更新されます。

于 2013-10-24T06:44:35.517 に答える
0

gidView.setAdapter(cla) の後; その行の前に、アダプターがまだ設定されていないためです..

ただし、いつ呼び出すかを決定する必要があります。つまり、アダプターのコンポーネントの 1 つに変更を加えた後にこの行 ( cla.notifyDataSetChanged() ) を呼び出し、それをすぐに表示したいということです。

于 2013-10-24T06:47:48.757 に答える