1

我是android的初学者。我使用此代码,但运行应用程序模拟器时显示异常。

    public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button btnpredef = (Button) findViewById(android.R.id.button1);
    btnpredef.setOnClickListener(new View.OnClickListener() 
    {
        @Override
        public void onClick(View v) 
        {
            progressbar = ProgressDialog.show(MainActivity.this, "","LOADING...");
            progressbar.setCancelable(true);
        }
    });
}

调试来自new OnClickListener()的捕获错误。

感谢帮助我。

日志猫:

10-05 15:05:01.499: D/AndroidRuntime(383): Shutting down VM
10-05 15:05:01.499: W/dalvikvm(383): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
10-05 15:05:01.509: E/AndroidRuntime(383): FATAL EXCEPTION: main
10-05 15:05:01.509: E/AndroidRuntime(383): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.app007/com.example.app007.MainActivity}: java.lang.NullPointerException
10-05 15:05:01.509: E/AndroidRuntime(383):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
10-05 15:05:01.509: E/AndroidRuntime(383):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
10-05 15:05:01.509: E/AndroidRuntime(383):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
10-05 15:05:01.509: E/AndroidRuntime(383):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
10-05 15:05:01.509: E/AndroidRuntime(383):  at android.os.Handler.dispatchMessage(Handler.java:99)
10-05 15:05:01.509: E/AndroidRuntime(383):  at android.os.Looper.loop(Looper.java:123)
10-05 15:05:01.509: E/AndroidRuntime(383):  at android.app.ActivityThread.main(ActivityThread.java:4627)
10-05 15:05:01.509: E/AndroidRuntime(383):  at java.lang.reflect.Method.invokeNative(Native Method)
10-05 15:05:01.509: E/AndroidRuntime(383):  at java.lang.reflect.Method.invoke(Method.java:521)
10-05 15:05:01.509: E/AndroidRuntime(383):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-05 15:05:01.509: E/AndroidRuntime(383):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-05 15:05:01.509: E/AndroidRuntime(383):  at dalvik.system.NativeStart.main(Native Method)
10-05 15:05:01.509: E/AndroidRuntime(383): Caused by: java.lang.NullPointerException
10-05 15:05:01.509: E/AndroidRuntime(383):  at com.example.app007.MainActivity.onCreate(MainActivity.java:25)
10-05 15:05:01.509: E/AndroidRuntime(383):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-05 15:05:01.509: E/AndroidRuntime(383):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
10-05 15:05:01.509: E/AndroidRuntime(383):  ... 11 more
4

5 回答 5

1

删除安卓

Button btnpredef = (Button) findViewById(android.R.id.button1);

然后去做

Button btnpredef = (Button) findViewById(R.id.button1);

参考

ProgressDialog progressBar;

然后添加这一行

progressBar = new ProgressDialog(v.getContext());

 progressbar = ProgressDialog.show(MainActivity.this, "","LOADING...");

并在最后添加这一行

progressBar.show();

这是一个可以帮助您的链接。

于 2012-10-05T11:29:30.330 回答
0

只需更换新View.OnClickListener()new OnClickListener()

public void onCreate(Bundle savedInstanceState) 
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btnpredef = (Button) findViewById(R.id.button1);
btnpredef.setOnClickListener(new OnClickListener() 
{
    @Override
    public void onClick(View v) 
    {
        progressbar = ProgressDialog.show(MainActivity.this, "","LOADING...");
        progressbar.setCancelable(true);
        progressbar.show();
    }
});
于 2012-10-05T11:26:35.770 回答
0
public class MainActivity extends Activity{

ProgressDialog progressbar; <----

public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button btnpredef = (Button) findViewById(android.R.id.button1);
    btnpredef.setOnClickListener(OnClickListener()   <---
    {
        @Override
        public void onClick(View v) 
        {
            progressbar = ProgressDialog.show(v.getContext(), "","LOADING..."); <--
            progressbar.setCancelable(true);
        }
    });
  }
}
于 2012-10-05T11:30:02.020 回答
0

我将android.R.id.button1替换为R.id.button1 感谢@Pain

于 2012-10-05T12:13:48.313 回答
0

当您没有将活动名称正确声明到清单文件中时,会发生此异常。将您的包名称和活动名称检查到清单文件中。

于 2012-10-05T12:01:36.257 回答