【问题标题】:Remove rows from listview on swipe or button通过滑动或按钮从列表视图中删除行
【发布时间】:2017-10-02 05:30:17
【问题描述】:

当我单击删除按钮时,我想从数据库以及列表视图中删除特定行,我尝试过但没有收到错误

UserAdapter 无法转换为 android.content.Context

这是我的适配器

 public class UserAdapter extends BaseAdapter implements  OnTaskCompleted{
    Context context;
    UserAdapter userAdapter;
    Bundle b=new Bundle();
    HashMap<Integer, UserSetter> userSettersClassHashMap;
    int layoutResId;
    String email_id="";
    private HashMap<String, String> postDataParams = null;
    TextView fname,lname,uname,empid,emailid,contact,role;
    Button edit,remove;
    public UserAdapter(Context context, HashMap<Integer, UserSetter> userSettersClassHashMap, int layoutResId) {
        this.context = context;
        this.userSettersClassHashMap = userSettersClassHashMap;
        this.layoutResId = layoutResId;
    }

    @Override
    public int getCount() {
        return userSettersClassHashMap.size();
    }

    @Override
    public Object getItem(int position) {

        return userSettersClassHashMap.get(position);
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

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

        View view;

        if (convertView == null) {
            LayoutInflater lf = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = lf.inflate(layoutResId, parent, false);
            view = convertView;

        } else {
            view = convertView;
        }
        fname = (TextView) view.findViewById(R.id.fname);
         emailid= (TextView) view.findViewById(R.id.emailid);
         role= (TextView) view.findViewById(R.id.role);

        remove=(Button) view.findViewById(R.id.remove);
        fname.setText(Html.fromHtml(userSettersClassHashMap.get(position).getFirstname()));
            role.setText(Html.fromHtml(userSettersClassHashMap.get(position).getRoleName()));

        remove.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


                email_id = String.valueOf(emailid.getText());
                Log.v("email adapter", String.valueOf(email_id));
              callRemove();
                notifyDataSetChanged();

            }
            public void callRemove() {

                postDataParams = new HashMap<>();

                postDataParams.put("email_id", email_id);

                Log.d("postdataparams","->"+postDataParams);
                new WebService(UserAdapter.this, postDataParams, "RemoveList").execute(AppConstants.BASE_URL + AppConstants.REMOVE_DATA);
            }

        });

        return view;

    }

【问题讨论】:

    标签: android listview android-asynctask android-adapter


    【解决方案1】:

    改变这一行

    new WebService(UserAdapter.this, postDataParams, "RemoveList").execute(AppConstants.BASE_URL + AppConstants.REMOVE_DATA);

    new WebService(context, postDataParams, "RemoveList").execute(AppConstants.BASE_URL + AppConstants.REMOVE_DATA);

    【讨论】:

      【解决方案2】:

      你必须传递上下文而不是 USerAdapter.this 作为:

      new WebService(context, postDataParams, "RemoveList").execute(AppConstants.BASE_URL + AppConstants.REMOVE_DATA);
      

      【讨论】:

      • 我想从服务器数据库中检索数据并设置为微调器而不是 textview 我怎么能这样做。im 使用这个 'place.setText(Html.fromHtml(myVehicleDetailsS​​ettersClassHashMap.get(0).getCity( )));'
      • 将项目添加到 arraylist 并将该数组列表传递给您的微调器的适配器。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-12
      • 2017-09-29
      相关资源
      最近更新 更多