2017-08-25 19 views
-1

我有RecyclerView的Android应用程序,其中包括:我怎样才能在适配器类中添加处理程序

  • EditText
  • Button

在点击Button,数据应该被发送到服务器。

我想添加一个处理程序来在间隔3秒内执行comethode,我如何实现在适配器中。一个适配器类的

回答

0

实施例:下面

检查在类

mHolder.tvUserFrom.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Handler handler = new Handler(); 
       handler.postDelayed(new Runnable() { 
        @Override 
        public void run() { 
         // Execute a comethode in the intervel 3sec 
        } 
       },3000); 
      } 
     }); 

MyAdapter类

public class MyAdapter extends BaseAdapter { 

    private ArrayList<Model> mItems = new ArrayList<>(); 
    private BaseActivity activity; 

    public MyAdapter(BaseActivity activity, ArrayList<Model> users) { 
     this.activity = activity; 
     this.mItems = users; 
    } 

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

    @Override 
    public int getViewTypeCount() { 

     if (getCount() < 1){ 
      return 1; 
     } else { 
      return getCount(); 
     } 
    } 

    @Override 
    public int getItemViewType(int position) { 

     return position; 
    } 


    @Override 
    public MessageModel getItem(int position) { 
     return mItems.get(position); 
    } 

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

    @Override 
    public View getView(final int position, View convertView, ViewGroup parent) { 
     ViewHolder mHolder; 
     View v = convertView; 
     Context context = parent.getContext(); 
     LayoutInflater layoutInflater = LayoutInflater.from(context); 
     if (v == null) { 
      v = layoutInflater.inflate(R.layout.row_item_chat_message, null); 

      mHolder = new ViewHolder(); 

      mHolder.tvUserFrom = (TextView) v.findViewById(R.id.tvUserFrom); 
      mHolder.tvUserTo = (TextView) v.findViewById(R.id.tvUserTo); 

      v.setTag(mHolder); 

     } else { 
      mHolder = (ViewHolder) v.getTag(); 
     } 

     Model model = mItems.get(position); 

     mHolder.tvUserFrom.setText("John"); 


     mHolder.tvUserFrom.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Handler handler = new Handler(); 
       handler.postDelayed(new Runnable() { 
        @Override 
        public void run() { 
         // Execute a comethode in the intervel 3sec 
        } 
       },3000); 
      } 
     }); 




     return v; 
    } 

    static class ViewHolder { 
     public ImageView ivUser; 
     public TextView tvUserFrom,tvUserTo; 
    } 
} 

import android.os.Handler;

1

要适配器使用Handler你可以使用下面的代码片段适配器:

Handler handler = new Handler(); 
handler.postDelayed(new Runnable() { 
    @Override 
    public void run() { 
     // your task 
    } 
},3000); 
0

进口android.os.Handler;

那么只有它会工作