0

サーバーデータベースからURLを介してすべてのメニュー名をフェッチしています。ベースアダプタを使用して、すべてのメニュー名をeditextのカスタマイズされたリストビューに追加します。今私はEdittextの変更された値をリスト配列に取得しています。今私は彼がmenunamesを変更するかどうかにかかわらず、edittextのすべての値を保存したいです。 editext.nowでzからcに配列リストに[x、bc ..]値が必要ですが、b、cを取得しています

          this is my code
            public View getView(int position, View convertView, ViewGroup parent) {
    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]);//here only i append database menunames
    holder.caption.setId(position);
    holder.caption1.setImageBitmap(bmps[position]);

    //we need to update adapter once we finish with editing
    holder.caption.setOnFocusChangeListener(new OnFocusChangeListener() {
        public void onFocusChange(View v, boolean hasFocus) {
            if (!hasFocus){
                final int position = v.getId();
                final EditText Caption = (EditText) v;
                itemnames[position] = Caption.getText().toString();

                arr.add(Caption.getText().toString());//here only i think problem..please see any body can tell what i have mistake has been done


            }
        }    
    });     

    return convertView;
}
      }

           class ViewHolder {
EditText caption;
ImageView caption1;
      }

    class ListItem {
String caption;
     }

editext値が変更されるかどうかに関係なく、すべてのedittext値が必要です。目的の更新のため。以前のすべてのメニュー名を取得できます。古いメニュー名を新しいメニュー名に更新したい

4

1 に答える 1

1

TextChangedListenerあなたのEditText中に追加getView()

コード:

holder.caption.addTextChangedListener(new TextWatcher()
{           
  @Override
   public void onTextChanged(CharSequence s, int start, int before, int count)
    {
     // TODO Auto-generated method stub         
    }           
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after)
    {
     // TODO Auto-generated method stub
     }
    @Override
    public void afterTextChanged(Editable s)
    {
    // TODO Auto-generated method stub
    String data =  holder.caption.getText().toString().trim();
    }
});

必要なときに、onTextChanged、beforeTextChanged、または afterTextChanged の edittext からデータを取得します。

于 2012-04-09T05:11:46.663 に答える