我有一个使用权限“ CALL_PHONE ”的Android应用。这个简单的应用程序只包含一个按钮,可以使用调用意图来调用特定的数字。我想在平板电脑和手机上安装此应用程序,但是当它安装在平板电脑上时,我希望在运行时禁用该按钮,以便当用户尝试使用没有通话功能的平板电脑进行呼叫时,不会显示错误。
目前,我在setEnabled()
中使用setClickable()
和MainActivity.java
方法,并在用户第一次点击按钮时将其设置为false。我的问题是,在运行时或首次打开应用程序时(平板电脑中)是否可以禁用按钮并更改文本,因此用户无需先单击按钮即可显示“调用” “按钮应该被禁用且不可点击?
答案 0 :(得分:2)
请参阅this
这将有助于您确定您的应用程序是否在平板电脑上运行。现在至于禁用你的按钮,我建议像这样:
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
}
因此,您无需等待用户点击“通话”按钮即可在平板电脑中将其禁用。 希望有所帮助。
答案 1 :(得分:1)
使用button.setEnabled(false);
使可见,但用户无法点击和
button.setVisibility(View.GONE);
使按钮不可见。和button.setText("YOUR_NEW_TEXT");
更改按钮文本运行时
这不取决于屏幕的大小。
这是你想要的吗?或者更具体地说明你的问题。
答案 2 :(得分:0)
...文本在运行时更改了吗?
你可以使用setText();方法
关于问题的其他部分,首先需要定义“什么是平板电脑?”。它是一个7英寸,8英寸,10英寸的屏幕吗?它是一个mdpi,hdpi,xhdpi屏幕吗?它是一个能够打电话的设备吗?什么是适合你或你的项目的平板电脑?根据你的答案,您可以过滤代码(or xml in folders),使其按照您想要的方式运行。