这是一个小的效果 , 就是ListView点击选着哪一行 , 然后点击删除键可以删除这一行的数据 , 利用的是自定义Adapter 效果比较小 , 实现起来也容易 直接上Demo吧
超级简单的布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.zhangzuhao.xeliehua.Main2Activity">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="删除"
android:id="@+id/btn"/>
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/main_listview"/>
</LinearLayout>
超级简洁的行布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="40dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/item_str"/>
</LinearLayout>
下面是适配器了 其实里面就添加了一个方法而已
public class TheAdapter extends BaseAdapter {
private List<MyBean> datas;
private MyBean bean ;
public void setDatas(List<MyBean> datas) {
this.datas = datas;
notifyDataSetChanged();
}
@Override
public int getCount() {
return datas != null && datas.size()> 0 ? datas.size() : 0;
}
@Override
public Object getItem(int i) {
return datas != null && datas.size() > 0 ? datas.get(i) : null ;
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
ViewHolder holder = null ;
if (view == null ){
view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item , viewGroup , false);
holder = new ViewHolder(view);
view.setTag(holder);
}else {
holder = (ViewHolder) view.getTag();
}
bean = datas.get(i);
holder.str.setText(bean.getStr());
return view;
}
public void removeData(int i){//删掉数据
datas.remove(i);
notifyDataSetChanged();
}
class ViewHolder{
private TextView str ;
public ViewHolder(View view){
str = (TextView) view.findViewById(R.id.item_str);
}
}
然后是MainActivity
public class Main2Activity extends AppCompatActivity {
private ListView mListView ;
private TheAdapter adapter ;
private List<MyBean> list ;
private Button btn ;
private long a;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
mListView = (ListView) findViewById(R.id.main_listview);
btn = (Button) findViewById(R.id.btn);
adapter = new TheAdapter();
mListView.setAdapter(adapter);
list = new ArrayList<>();
for (int i = 0; i <20 ; i++) {
list.add(new MyBean("aaaa"+i));
}
adapter.setDatas(list);
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
a = adapter.getItemId(i);//利用适配器获取行的位置
Log.d("aaaa" , "a--------->"+a);
btn.setText("删除第"+a+"行数据");
Toast.makeText(Main2Activity.this, "已选择第"+a+"行", Toast.LENGTH_SHORT).show();
}
});
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int b = (int) a ; //因为是a 是long型 所以我转了一下
Log.d("aaaa" , "b----------->"+b);
adapter.removeData(b);
btn.setText("请选择行数");
}
});
}
}
以上是实现效果的代码 也是比较简单的 但是感觉能用的地方还是挺多的 , 这个也算是个参考吧 然后我这个里面没有任何判断 所以小伙伴们用的我Demo的话就不要太暴力啦 !!!!!!!!
第五行没有了!!!!