代码没有提示红叉,运行时却会报错.
import android.app.Activity;
import android.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
public class MainActivity extends Activity {
private static Button bt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
<span style="background-color: rgb(51, 153, 153);">bt.setOnClickListener(new OnClickListener()</span>
{
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent it = new Intent(MainActivity.this,ImageShowActivity.class);
startActivity(it);
}
});
报错如下:
感觉很奇怪,bt.setOnClickListener(new OnClickListener()这样的写法很常见的呀,怎么会报错呢?
追究原因,一般报错java.lang.nullpointerException ,都是某个对象没有创建成功导致.
所以怀疑到bt这个button没有创建成功,查看代码才发现忘记写findViewById()了.
public class MainActivity extends Activity {
private static Button bt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
<span style="background-color: rgb(51, 153, 153);">bt = (Button)findViewById(R.id.image_show_button);</span>
bt.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent it = new Intent(MainActivity.this,ImageShowActivity.class);
startActivity(it);
}
});