1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > android listview 左右滑动 Android ListView 左右滑动显示删除

android listview 左右滑动 Android ListView 左右滑动显示删除

时间:2023-10-29 11:52:40

相关推荐

android listview 左右滑动 Android ListView  左右滑动显示删除

public class AddressAdapter extends BaseAdapter {

Context context;

JSONArray arry;

Button btn;

private float downX; //点下时候获取的x坐标

private float upX; //手指离开时候的x坐标

/**

*

*/

public AddressAdapter(Context context, JSONArray arry) {

this.context = context;

this.arry = arry;

}

/* (non-Javadoc)

* @see android.widget.Adapter#getCount()

*/

@Override

public int getCount() {

return arry.length();

}

/* (non-Javadoc)

* @see android.widget.Adapter#getItem(int)

*/

@Override

public Object getItem(int position) {

try {

return arry.getJSONObject(position);

} catch (JSONException e) {

e.printStackTrace();

}

return null;

}

/* (non-Javadoc)

* @see android.widget.Adapter#getItemId(int)

*/

@Override

public long getItemId(int position) {

return position;

}

/* (non-Javadoc)

* @see android.widget.Adapter#getView(int, android.view.View, android.view.ViewGroup)

*/

@Override

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

TextView txt1, txt2;

final Button delBtn;

// 获得布局文件more_info_my.xml,里面定义了TextView和ImageView两个组件

convertView = LayoutInflater.from(context).inflate(

R.layout.address_lv_item, null);

txt1 = (TextView) convertView.findViewById(R.id.txt1);

txt2 = (TextView) convertView.findViewById(R.id.txt2);

delBtn = (Button) convertView.findViewById(R.id.btn1);

try{

txt1.setText(arry.getJSONObject(position).getString("address_title"));

txt2.setText(arry.getJSONObject(position).getString("address_create_time"));

delBtn.setTag(arry.getJSONObject(position).getString("address_id"));

}catch(JSONException e){

e.printStackTrace();

}

// 返回的convertView对象将作为ListView的列表项

convertView.setOnTouchListener(new OnTouchListener() {

@Override

public boolean onTouch(View v, MotionEvent event) {

switch (event.getAction()) {

case MotionEvent.ACTION_DOWN:

downX = event.getX();

upX = 0;

if (btn != null) {

btn.setVisibility(View.GONE); //影藏显示出来的button

}

break;

case MotionEvent.ACTION_UP:

upX = event.getX();

if (btn != null) {

btn.setVisibility(View.GONE); //影藏显示出来的button

}

break;

}

if(delBtn != null){

if(upX == 0.0){

return true;

}

if(Math.abs(downX - upX) > 35){

delBtn.setVisibility(View.VISIBLE);

btn = delBtn;

return true;

}

return false;

}

return false;

}

});

delBtn.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

Toast.makeText(context, v.getTag().toString(), Toast.LENGTH_SHORT).show();

arry = RemoveJSONArray(arry,position);

notifyDataSetChanged();

}

});

return convertView;

}

/**

* 删除JSONArry内的JSONObject

* @param jarray

* @param pos

* @return

*/

public static JSONArray RemoveJSONArray( JSONArray jarray,int pos) {

JSONArray Njarray=new JSONArray();

try{

for(int i=0;i

if(i!=pos)

Njarray.put(jarray.get(i));

}

}catch (Exception e){

e.printStackTrace();

}

return Njarray;

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。