如何让自定义列表视图editext editext的所有值从Android的MySQL数据库

我正在获取从MySQL数据库menunames并添加使用基地adapter.now我是改变一些menunames在editext值定制列表视图,以EDITTEXT。 现在我想要得到首先editext到最后

Eg:x,y,z,.... are menunames coming from database it append editext(cusom listview) i am change editext value y to b now i want x,b,z...... values in arraylisst..

我的基类adapger

public class EditMainMenulistview extends BaseAdapter { public final ArrayList<String> arr = new ArrayList<String>(); protected static Context Context = null; int i; public String editnewmainmenu, menuname, edittext; String qrimage; Bitmap bmp, resizedbitmap; Bitmap[] bmps; Activity activity = null; private LayoutInflater inflater; private ImageView[] mImages; String[] itemimage; TextView[] tv; String itemname, itemcode; public String[] itemnames, itemcodes; HashMap<String, String> map = new HashMap<String, String>(); public EditMainMenulistview(Context context, JSONArray imageArrayJson) { Context = context; // inflater = // (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); // imageLoader=new ImageLoader(activity); inflater = LayoutInflater.from(context); this.mImages = new ImageView[imageArrayJson.length()]; this.bmps = new Bitmap[imageArrayJson.length()]; this.itemnames = new String[imageArrayJson.length()]; this.itemcodes = new String[imageArrayJson.length()]; try { for (i = 0; i < imageArrayJson.length(); i++) { JSONObject image = imageArrayJson.getJSONObject(i); qrimage = image.getString("menuimage"); itemname = image.getString("menuname"); itemcode = image.getString("menucode"); itemnames[i] = itemname; itemcodes[i] = itemcode; byte[] qrimageBytes = Base64.decode(qrimage.getBytes()); bmp = BitmapFactory.decodeByteArray(qrimageBytes, 0, qrimageBytes.length); int width = 100; int height = 100; resizedbitmap = Bitmap.createScaledBitmap(bmp, width, height, true); bmps[i] = bmp; mImages[i] = new ImageView(context); mImages[i].setImageBitmap(resizedbitmap); mImages[i].setScaleType(ImageView.ScaleType.FIT_START); // tv[i].setText(itemname); } System.out.println(itemnames[i]); } catch (Exception e) { // TODO: handle exception } } public int getCount() { return mImages.length; } public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } 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]);//i append menunames here holder.caption.setId(position); holder.caption1.setImageBitmap(bmps[position]); // we need to update adapter once we finish with editing arr.add(holder.caption.getText().toString());//here i am try to get all values change and without edit text values but it get only menunames values return convertView; } } class ViewHolder { EditText caption; ImageView caption1; } class ListItem { String caption; }

请帮帮我

--------------解决方案-------------

我想你将需要使用OnTouchEditText得到它的编号,并添加TextWatcher在EditText上获得Editext。

这里是举例触摸听者的EditText

OnTouchListener mEdittextTouchListener = new OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {

int childPosition = v.getId;
Log.i("Log_tag", "Edittext Position is " + childPosition);
//Here you will get your EditText Position.
//saveData=true;
//setChildPosition(childPosition);

return false;
}
};

现在实现TextWatcher在你的活动,并在您的getView添加这样的修改BaseAdapter

holder.caption.removeTextChangedListener(ExpandableListPage.this);
holder.caption.setOnTouchListener(mEdittextTouchListener);
holder.caption.addTextChangedListener(ExpandableListPage.this);

现在首先要确保从EditText上删除TextWatcher并添加它。因为当你的ListView视图是要显示的EditText会叫TextWather方法,以防止这一点,我们总是需要删除它,然后添加它。

@Override
public void afterTextChanged(Editable s) {
Log.v("Log_tag", "After TextChanged" + s.toString());

}

@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
Log.i("Log_tag", "Before TextChanged" + s.toString());

}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
Log.e("Log_tag", "ontext Changed"+ s.toString());
if(count!=0){
if(saveData){
//Add your EditText Change Value here
arr.add(s.toString());
}
}

}

}

分类:安卓 时间:2015-03-14 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.151 (s). 10 q(s)