如何用getIdentifier获取android.R的ID,如android.R.drawable.ic_launcher

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用getIdentifier获取android.R的ID,如android.R.drawable.ic_launcher相关的知识,希望对你有一定的参考价值。

参考技术A int resID = getResources().getIdentifier("imageName", "drawable", "com.test.image");
Drawable image = getResources().getDrawable(resID);追问

我试过了,把com.test.image换成android没用啊,小菜一枚,希望能出下直接能用的

参考技术B 主要由两种方法:
1. 不把图片放在res/drawable下,而是存放在src某个package中(如:com.drawable.resource),这种情况下的调用方法为:
String path = "com/drawable/resource/imageName.png";
InputStream is = getClassLoader().getResourceAsStream(path);
Drawable.createFromStream(is, "src");
2. 如果还是希望直接使用res/drawable中的图片,就需要通过下面的方法了:
假设创建工程的时候,填写的package名字为:com.test.image
int resID = getResources().getIdentifier("imageName", "drawable", "com.test.image");
Drawable image = getResources().getDrawable(resID);

如何用 eloquent 在 Laravel 中只获取一个用户数据?

【中文标题】如何用 eloquent 在 Laravel 中只获取一个用户数据?【英文标题】:How to get just one user data in Laravel with eloquent? 【发布时间】:2021-08-13 01:04:24 【问题描述】:

我使用 Laravel 8。我想获取用户进程课程,但我得到了所有用户进程。

在 User.php 中

  public function courses()
    
        return $this->belongsToMany(Course::class);
    

Course.php

public function progresses()
 
    return $this->hasMany(Progress::class);
 

Progress.php 为空。

课程表

Schema::create('courses', function (Blueprint $table) 
        $table->id();
        $table->string('title');
        ...
        $table->timestamps();
    );

进度表

    Schema::create('progress', function (Blueprint $table) 
        $table->id();
        $table->foreignId('user_id')->constrained()->onDelete('cascade');
        $table->foreignId('course_id')->constrained()->onDelete('cascade');
        $table->integer('percent');
        $table->timestamps();
    );

课程控制器

public function index()

    $userCourses = User::where('id', 1)->with('courses.progresses')->first();
    return $userCourses;

这个回报:

但我只想要 user_id = 1 的进程。

【问题讨论】:

【参考方案1】:

With() 方法可以使用特定的数组注释来限制急切加载。这在documentation 中也有描述。

$userId = 1;

$userCourses = User::where('id', $userId)
    ->with(
        [
            'courses.progresses' => function ($query) use ($userId) 
                $query->where('user_id', $userId)
            ,
        ]
     )->first();

【讨论】:

是的,就用那个答案吧 ;-) 可能想要使用 find($userId) 而不是 where('id', $userId) 并且也以这种方式摆脱 first() - 你必须最后找到,但是。

以上是关于如何用getIdentifier获取android.R的ID,如android.R.drawable.ic_launcher的主要内容,如果未能解决你的问题,请参考以下文章

android 动态获取ID通过Resources的 getIdentifier 方法

如何用Android Studio获取SIM卡带字母的ICCID?

如何用adb shell 指令获得android当前的activity

如何用adb shell 指令获得android当前的activity

Android 获取虚拟按键的高度

android 字符串拼接获取图片