0

データベースからメニュー名を取得してから、カスタムリストビュー edittext に追加しています。今、 edittext のいくつかの値を変更しています。edittext の値を変更したすべての値を配列に入れたい

           Example :x,y,z menunames comes from database i append editext(Custom listview)
           now i am changed y to b 
           now i want x,b,z in arraylist 

私はこのコードを試します(基本アダプタークラス)

           public View getView(int position, View convertView, ViewGroup parent) {
    final ViewHolder holder;


    if (convertView == null) {
        holder = new ViewHolder();
        convertView = inflater.inflate(R.layout.editmainmenulist, null);
        holder.caption = (EditText) convertView
                .findViewById(R.id.editmaimenu);
        holder.caption1=(ImageView) convertView.findViewById(R.id.menuimage);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }
    //Fill EditText with the value you have in data source
    holder.caption.setText(itemnames[position]);
    holder.caption.setId(position);
    holder.caption1.setImageBitmap(bmps[position]);


    arr.add(holder.caption.getText().toString());//here i get menunames data only not changed edittext values



    return convertView;
}
  }

 class ViewHolder {
EditText caption;
ImageView caption1;
}

 class ListItem {
String caption;
 }

私を助けてください

4

2 に答える 2

0

新しいデータがデータベースから取得された場合は、カーソルを再度呼び出して、listViewに再度setAdapterを設定する必要があります。

または、データがすでに配列リストに含まれているため、listViewを無効にするために使用した場合。nアダプタを再度設定します....必要なものが得られます...

于 2012-04-10T06:15:10.020 に答える
0

データをarraylistに保持し、arraylistのテキストを変更した後、次のようにアダプターを使用してリストビューを再度呼び出します

      lv.invalidate(); // it will rebuilt all the views in listview
      adapter=new adapterclass(this);
      lv.setAdapter(adapter);

listviewの値を変更し、listviewのinvalidateviewメソッドを呼び出して、listviewのデータを変更します。それを試してみてください。それはあなたを助けるかもしれません。

于 2012-04-10T05:32:13.467 に答える