【发布时间】:2013-05-30 17:16:09
【问题描述】:
image123(ImageView) 工作正常,但是当涉及到 ONclickListener 时,即使使用不同的调用监听器方法后它也不起作用。
我在 SetContentView() 之后放置了包含 image123 (ImageView) 的 findviewbyid 的 func(),它工作正常。当 func() 位于重置按钮的 OnClicklistener 中时,image123 的 OnclickListener 不起作用,如代码所示。
问题:
如何在重置按钮 onclicklistener 以及在 Oncreate() Activity 开始时调用 func()?
它捕获 Log cat 中显示的异常
- Onclick 监听器出现异常" ,"java.lang.NullPointerException
public class MainActivity extends Activity {
ImageView image123;
int[] resultid=new int[25];
Button buttonExit;
Button buttonreset;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonreset=(Button) findViewById(R.id.button_reset);
buttonExit=(Button) findViewById(R.id.button_exit);
v1=(TextView)findViewById(R.id.name);
v2=(TextView)findViewById(R.id.fruit_count);
//--------------------------Exit Button---------------------------
buttonExit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
//*******************Exception comes here*********************
try{
image123.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Log.d("Listner Called", "Listner Called");
}
});
}
catch(Exception e)
{
Log.d("Exception at onclickListener", e.toString());
}
buttonreset.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
func();
}});
}
void func()
{
String as=null;
int resultid;
SecureRandom random=new SecureRandom();
image123=new ImageView(this);
as=("img"+1).toString();
resultid=getResources().getIdentifier(as, "id","com.example.selectiongame" );
Log.d(as, ""+resultid);
image123=(ImageView) findViewById(resultid);
as="drawable"+(random.nextInt(3)+1);
resultid = getResources().getIdentifier(as, "drawable", "com.example.selectiongame");
Log.d(as, ""+resultid);
image123.setImageResource(resultid);
}
【问题讨论】:
-
“它不起作用”是什么意思?当你编译和运行你的应用程序时会发生什么?
-
OnclickListener 函数没有运行...对点击没有影响
-
请提供一个完整的简短示例来说明您的问题。目前,您提供了两个没有任何上下文的 try...catch 块来显示它们在代码中的位置。我建议你用一个
ImageView创建一个新的小项目并设置它的OnClickListener。如果你可以让它工作,更进一步,创建一个只有 两个ImageViews 的数组。当你开始工作时,一次添加一点。如果您在任何时候遇到问题,您都可以在此处显示您的问题的少量代码。 -
Code-Gur0 ,我已经简化了代码,但 OnclickListener 异常仍在出现,但这是简化的一个。你可以看到它
-
你得到什么异常?请发布确切的错误消息。
标签: android android-activity nullpointerexception imageview onclicklistener