小编che*_*riy的帖子

在RecyclerView中确认和撤消删除

我在RecyclerView中有一个简单项目列表.使用ItemTouchHelper实现"轻扫到删除"行为非常容易.

public class TripsAdapter extends RecyclerView.Adapter<TripsAdapter.VerticalItemHolder> {
    private List<Trip> mTrips;
    private Context mContext;
    private RecyclerView mRecyclerView;

    [...]

    //Let adapter know his RecyclerView. Attaching ItemTouchHelper
    @Override
    public void onAttachedToRecyclerView(RecyclerView recyclerView) {
        ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new TripItemTouchHelperCallback());
        itemTouchHelper.attachToRecyclerView(recyclerView);
        mRecyclerView = recyclerView;
    }

    [...]

    public class TripItemTouchHelperCallback extends ItemTouchHelper.SimpleCallback {
        public  TripItemTouchHelperCallback (){
            super(ItemTouchHelper.UP | ItemTouchHelper.DOWN, ItemTouchHelper.RIGHT);
        }

        @Override
        public boolean onMove(RecyclerView recyclerView,
                              RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
            //some "move" implementation
        }
        @Override
        public void onSwiped(RecyclerView.ViewHolder viewHolder, int swipeDir) {
            //AND WHAT …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview

25
推荐指数
2
解决办法
2万
查看次数

重复授权给门卫提供错误422(资源所有者凭证流)

我是Rails和webdev的新手.尝试使用Rails + Devise + Doorkeeper为移动应用程序实现简单的API(如https://github.com/doorkeeper-gem/doorkeeper-provider-app).

面对如果用户已经收到令牌,用户无法发出授权请求(POST/oauth/token)的问题.即:

curl -F grant_type=password -F username=1@tothetrip.com -F password=12345678 -X POST http://api.to_the_trip.dev/oauth/token
Run Code Online (Sandbox Code Playgroud)

第一次收到:

{"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyIjp7ImlkIjoyLCJlbWFpbCI6IjFAdG90aGV0cmlwLmNvbSJ9fQ.dYai6nH_KYb9YbDltqwFuzCO3i0igR_gw2T7u_TeVcI","token_type":"bearer","expires_in":7200,"created_at":1435864812}
Run Code Online (Sandbox Code Playgroud)

令牌转到oauth_access_tokens表(JWT不需要什么,但不是问题).

如果我重复这个请求,我会收到422错误和rails的页面

    ActiveRecord::RecordInvalid in Doorkeeper::TokensController#create
Validation failed: Token has already been taken

activerecord (4.2.3) lib/active_record/validations.rb:79:in `raise_record_invalid'
activerecord (4.2.3) lib/active_record/validations.rb:43:in `save!'
activerecord (4.2.3) lib/active_record/attribute_methods/dirty.rb:29:in `save!'
activerecord (4.2.3) lib/active_record/transactions.rb:291:in `block in save!'
activerecord (4.2.3) lib/active_record/transactions.rb:351:in `block in with_transaction_returning_status'
activerecord (4.2.3) lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `block in transaction'
activerecord (4.2.3) lib/active_record/connection_adapters/abstract/transaction.rb:184:in `within_new_transaction'
activerecord (4.2.3) lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `transaction'
activerecord (4.2.3) lib/active_record/transactions.rb:220:in `transaction'
activerecord (4.2.3) lib/active_record/transactions.rb:348:in `with_transaction_returning_status'
activerecord (4.2.3) …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails oauth doorkeeper

5
推荐指数
2
解决办法
858
查看次数