0

我有一个使用“ CALL_PHONE ”权限的安卓应用。这个简单的应用程序将只包含一个按钮,该按钮将使用呼叫意图呼叫特定号码。我想在平板电脑和手机上安装这个应用程序,但是当它安装在平板电脑上时,我希望在运行时禁用该按钮,这样当用户尝试使用没有通话功能的平板电脑拨打电话时不会显示错误.

目前,我正在使用setEnabled()andsetClickable()方法,MainActivity.java并在用户第一次单击按钮时将其设置为 false。我的问题是是否可以禁用按钮并在运行时或首次打开应用程序时(在平板电脑中)更改文本,以便用户不必先单击按钮以显示“呼叫”按钮应该被禁用且无法点击?

4

3 回答 3

2

参考这个

这将帮助您确定您的应用程序正在平板电脑上运行。现在至于禁用你的按钮,我会建议这样的事情:

onCreate()
{
     setContentView(R.layout.main);
     boolean isTablet = checkDevice();
     callBtn = (Button) findViewById(R.id.call);
     if (isTablet)
     {
        callBtn.setEnabled(false);
        callBtn.setText("Not allowed to make a call");
     }

     callBtn.setOnClickListener( new onClickListener(){
           //Make a call
     });

}

public boolean isTablet()
{

    //Code for identifying. Return true if application is running on tablet
    //return false otherwise

}

因此,您不必等待用户单击“呼叫”按钮即可在平板电脑中禁用它。希望有帮助。

于 2012-12-28T04:43:14.673 回答
1

用于button.setEnabled(false);使可见但用户无法单击
button.setVisibility(View.GONE);并使按钮不可见。以及button.setText("YOUR_NEW_TEXT");更改按钮文本运行

这不取决于屏幕的大小。

这是你想要的吗??或者对您的问题更具体。

于 2012-12-28T03:12:57.993 回答
0

...文本在运行时更改?

您可以使用 setText(); 方法。

关于问题的另一部分,您首先需要定义“什么是平板电脑?”。它是 7"、8"、10" 屏幕吗?它是 mdpi、hdpi、xhdpi 屏幕吗?它是能够打电话的设备吗?什么是平板电脑适合您或您的项目?取决于您的答案,您可以过滤您的代码(或文件夹中的 xml)以使它们以您想要的方式工作。

于 2012-12-28T02:55:47.420 回答