小编Ale*_*lex的帖子

枚举在Swift中切换

我正在尝试遍历所有选项卡项以通过使用枚举的开关设置一些属性:

enum TabItems {
    case FirstTab
    case SecondTab
    case ThirdTab
}
Run Code Online (Sandbox Code Playgroud)

这是我的循环:

for item in self.tabBar.items {
    switch item.tag {
    case .FirstTab:
        println("first tab")
    default:
        println("tab not exists")
    }
}
Run Code Online (Sandbox Code Playgroud)

有一个错误:Enum case 'FirstTab' not found in type 'Int!'.如何在此switch语句中正确使用enum?

enums switch-statement swift

11
推荐指数
1
解决办法
8457
查看次数

只有一个圆角的 ImageView

我正在尝试ImageView在下图中制作一个圆角,但右下角。尝试使用背景形状,但它根本不起作用。Glide 加载的所有图像。我应该使用类似的东西ViewOutlineProvider吗?有没有一种有效的方法来做到这一点?谢谢!

<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <corners
        android:radius="2dp"
        android:bottomRightRadius="20dp"
        android:bottomLeftRadius="0dp"
        android:topLeftRadius="0dp"
        android:topRightRadius="0dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)

Android Material 文档中的示例

android android-shape android-shapedrawable material-components material-components-android

8
推荐指数
2
解决办法
8589
查看次数

AngularJS在范围内获取所选项目

我正在使用Ionic和AngularJS开发应用程序.无法计算如何获得所选选项的值

调节器

.controller('TestCtrl', function($scope, $options) {
    $scope.options = [
        { id: 0, label: '15', value: 15 },
        { id: 1, label: '30', value: 30 },
        { id: 2, label: '60', value: 60 }
    ]

    $scope.countSelector = $scope.options[0];

    $scope.changeCount = function(obj){
        obj = JSON.parse(obj);
        console.log(obj)
        console.log(countSelector)
        $options.set('productCountPerPageValue', obj.value);
        $options.set('productCountPerPage', obj.id);
    };
    ...
})
Run Code Online (Sandbox Code Playgroud)

模板

<ion-list ng-controller="TestCtrl">

    <label class="item item-input item-select">
        <div class="input-label">
            {{countSelector}}
        </div>
        <select ng-model="countSelector" ng-change="changeCount('{{countSelector}}')" ng-options="opt as opt.label for opt in options">
        </select>
    </label>

</ion-list>
Run Code Online (Sandbox Code Playgroud)

console.log(obj)始终返回先前选择的值

console.log(countSelector)始终返回默认值(如果已设置)或未定义

javascript angularjs ionic-framework

6
推荐指数
1
解决办法
3万
查看次数

碎片中的导航抽屉后退按钮

我开始创建使用一个活动(导航抽屉)和许多片段的应用程序.但我无法使用工具栏后退按钮从片段导航回来.硬件后退按钮完美运行.我知道我需要覆盖onOptionsItemSelected,捕获android.R.id.home,检查后台堆栈中是否有东西而不是弹出它.更改片段后,"汉堡"按钮变为"后退箭头",但是当我点击它onOptionsItemSelected从未触发时,只需打开NavigationDrawer菜单.

这里来自活动的代码:

public class NavDrawerActivity extends AppCompatActivity implements ... {

    NavigationView navigationView;
    BottomNavigationView bottomNavigationView;
    ActionBarDrawerToggle toggle;
    FragmentManager fragmentManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_nav_drawer);

        fragmentManager = getSupportFragmentManager();

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        final DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);

        toggle = new ActionBarDrawerToggle(
                this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);

        drawer.addDrawerListener(toggle);

        toggle.syncState();

        // Set back button
        fragmentManager.addOnBackStackChangedListener(new FragmentManager.OnBackStackChangedListener() {
            @Override
            public void onBackStackChanged() {
                if (fragmentManager.getBackStackEntryCount() > 0) {
                    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
                } else {
                    getSupportActionBar().setDisplayHomeAsUpEnabled(false); …
Run Code Online (Sandbox Code Playgroud)

android android-fragments navigation-drawer

5
推荐指数
1
解决办法
6798
查看次数

Spring with JWT auth,获取当前用户

我有使用 JWT 令牌进行授权的 Spring Boot REST 应用程序。我想使用@AuthenticationPrincipal注释在控制器中获取当前登录的用户。但是,null如果我返回自定义模型loadUserByUsername并且 auth 停止工作,它总是会返回。我的模型实现了UserDetails.

我试图扩展org.springframework.security.core.userdetails.User但我摆脱了默认构造函数不存在的JWTAuthenticationFilter错误(ApplicationUser creds = new ObjectMapper().readValue(req.getInputStream(), ApplicationUser.class);

怎么了?

UserDetailsS​​erviceImpl.java

@Service
public class UserDetailsServiceImpl implements UserDetailsService {
    private UserRepository userRepository;

    public UserDetailsServiceImpl(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

    @Override
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
        ApplicationUser applicationUser = userRepository.findByUsername(username);
        if (applicationUser == null) throw new UsernameNotFoundException(username);

        return applicationUser;
    }
}
Run Code Online (Sandbox Code Playgroud)

ApplicationUser.java(模型)

@Entity
@Table(name = "users")
public class ApplicationUser …
Run Code Online (Sandbox Code Playgroud)

java spring spring-security jwt

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

Python并行线程

这里是下载3个文件的代码,并用它做一些事情.但在启动Thread2之前,它会一直等到Thread1完成.如何让他们一起跑?使用注释指定一些示例.谢谢

import threading
import urllib.request


def testForThread1():
    print('[Thread1]::Started')
    resp = urllib.request.urlopen('http://192.168.85.16/SOME_FILE')
    data = resp.read()
    # Do something with it
    return 'ok'


def testForThread2():
    print('[Thread2]::Started')
    resp = urllib.request.urlopen('http://192.168.85.10/SOME_FILE')
    data = resp.read()
    # Do something with it
    return 'ok'


if __name__ == "__main__":
    t1 = threading.Thread(name="Hello1", target=testForThread1())
    t1.start()
    t2 = threading.Thread(name="Hello2", target=testForThread2())
    t2.start()
    print(threading.enumerate())
    t1.join()
    t2.join()
    exit(0)
Run Code Online (Sandbox Code Playgroud)

python multithreading

4
推荐指数
1
解决办法
7370
查看次数