【发布时间】:2016-06-29 08:20:11
【问题描述】:
当我点击 imageView 时,我只想从可绘制的图像中生成一个随机图像。每当我运行此代码时,模拟器上的应用程序都会崩溃。这段代码有什么问题:
package com.example.surya.musicpleer;
import android.app.Activity;
import android.graphics.Typeface;
import android.support.v4.widget.TextViewCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.Random;
public class MainActivity extends Activity {
ImageView i1;
Random r = new Random();
int target = r.nextInt(3);
String drawablename = "photo" + target;
int resID = getResources().getIdentifier(drawablename, "drawable", getPackageName());
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
i1 =(ImageView)findViewById(R.id.imageView);
i1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
i1.setImageResource(resID);
}
});
}
}
【问题讨论】:
-
崩溃的堆栈跟踪是什么?
-
询问了无数次,您对
getResources()的调用为时过早......上下文尚未准备好 -
正确的做法是什么?
-
在此处发布 logcat 错误
-
引起:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'android.content.res.Resources android.content.Context.getResources()'