【问题标题】:using switch buttons in android application在 android 应用程序中使用切换按钮
【发布时间】:2012-05-19 10:59:40
【问题描述】:

我正在将此代码用于我的 android 应用程序。但是这段代码中的问题是它在模拟器上安装时可以完美运行。一旦我尝试在我的手机中安装它,它就会安装,但是在打开应用程序时它会显示错误消息,因为应用程序没有响应。而且我需要使用开关按钮。有没有其他方法可以使用它?

    switch1= (Switch) findViewById(R.id.switch1);

    switch1.setOnClickListener(new View.OnClickListener() 
    {
        public void onClick(View v) 
        {  
             if(switch1.getText().toString().equals("On"))
             {
                String message = "t030s005n123456";                 

                sendSMS(phoneNo, message);          
             }

             else if(switch1.getText().toString().equals("Off"))
             {
                String message = "notn123456";                 

                sendSMS(phoneNo, message);  
             }
        }
    });

【问题讨论】:

  • 请粘贴 LOGCAT!
  • 该设备中安装了哪个版本...开关从 android 4.0(API 级别 14)开始工作。即使您在清单文件中设置了最低版本,但如果设备版本低于 4.0,则在运行应用程序时会显示错误。
  • 我的设备是 4.0.3 版(API 级别 15)
  • 错误信息是“应用程序已意外停止。请重试!”
  • 但是在您的帖子中您说它显示 ANR(Android Notresponsive) 消息.. 它是哪一个..?

标签: java android android-widget


【解决方案1】:

在新线程中调用sendSms() 方法。这只是一个快速修复。

new Thread(new Runnable() {
        @Override
        void run() {
            sendSms();
        }
    }
}).start();

或者,您可能希望在发送任务完成后显示进度对话框并执行其他操作。在这种情况下,请使用AsyncTask。谷歌有很好的例子。

【讨论】:

    【解决方案2】:

    switch1= (Switch) findViewById(R.id.switch1);

    Api levels lesser than 14 does not support your switch1 obj must be null.. 
    place if(switch1!=null)
    {
    //click listener
    }
    

    还要确保您的设备已升级到 api 级别 14 ICE_CREAM_SANDWICH

    由于开关小部件来自 api 级别 14。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-26
      • 2012-09-23
      • 2019-06-08
      • 2014-09-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多