gpt4 book ai didi

java - 使用 getIdentifier() 查找图像的 ID

转载 作者:行者123 更新时间:2023-12-01 10:51:03 26 4
gpt4 key购买 nike

我正在尝试使用以下代码获取图像的 id。

 public class MovieActivity extends ActionBarActivity {
private Context con;
String name = "test";
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
con = MovieActivity.this;
setContentView(R.layout.activity_movie);
}

public void updateScreen(){

int imageResource = con.getResources().getIdentifier("drawable/" + name , null, con.getPackageName());

}

}

当我运行它时,出现异常:

java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference

我认为问题出在 Context 上,因此我添加了 con 变量,该变量在代码运行时获取上下文。我做了一些研究并尝试了其他方法,但每次都遇到同样的异常。谁能帮我?

编辑:当我在 MainActivity 中使用相同的代码行时,它工作得很好。但在另一个类中,它失败了。

public class SomeMovie extends MovieActivity {  }

public class MainActivity extends ActionBarActivity {

protected void onCreate(Bundle savedInstanceState) {
SomeMovie movie = new SomeMovie();
movie.updateScreen();

}
}

SomeMovie 类是 MovieActivity 类的子类。我称之为该方法。我调试了代码,发现当代码进入 updateScreen() 方法时,Context 为空。在 Activity 类上使用继承是错误的吗?

最佳答案

改变

int imageResource = con.getResources().getIdentifier("drawable/" + name , null, con.getPackageName());

int imageResource = getResources().getIdentifier("drawable/" + name , null, con.getPackageName());

您已经处于Activity的上下文中,因此请使用它。 (无需使用this关键字来引用它)

编辑:

您没有为 SomeMovie Activity 定义布局,因此其context 始终为null。您必须在其 onCreate 方法中定义 Activity 的布局:

public class SomeMovie extends MovieActivity {

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.somemoviexml);
...

}
}

关于java - 使用 getIdentifier() 查找图像的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33902566/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com