[英]Calling two different activities on different devices (tablet and phone)
在这里,我正在尝试在不同的设备(Android平板电脑和Android手机)上启动活动。 有没有一种方法可以使用if语句来检查应基于设备加载的活动? 这是我的代码:
Button buttonGo = (Button) findViewById(R.id.button_goToActivity);
buttonGo.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (tablet device) {
startActivity(new Intent(MainActivity.this, TabletActivity.class));
} else {
startActivity(new Intent(MainActivity.this, AndroidPhoneActivity.class));
}
});
谢谢你的努力...
首先,作为Android最佳实践,建议使用Fragments而不是Activity来实现您的要求。
但如果您热衷于使用Activity,那么下面是查找设备类型和加载不同活动的解决方案。
1)有2个值文件夹:values - > strings.xml和values-sw600dp - > strings.xml
2)在xml中创建字符串值
<string name="device_type">PHONE</string> in values -> strings.xml
<string name="device_type">TABLET</string> in values-sw600dp -> strings.xml
3)创建一种方法来检查当前设备是否为手机
public boolean isPhone() {
String deviceType = getResource().getString(R.string.device_type);
if (deviceType.equalsIgnoreCase("PHONE") {
return true;
} else {
return false;
}
}
4)根据设备加载您的活动,就像您在上面的代码段中所做的那样
如果这有帮助,请告诉我......
最有可能的,你不应该有两个独立的活动在这里。 相反,您应该为同一活动设置两种不同的布局 。 手机的布局应位于常规res/layout
文件夹中,平板电脑的布局应位于res/layout-large
文件夹中。 请阅读支持不同的屏幕以获取更多详细信息。
如果您对平板电脑活动和电话活动使用相同的功能,则不需要为此执行两项活动。 您需要为Tablet和Phone制作两个不同的Layout xml。
现在运行应用程序平板电脑和手机机器人将根据大小和屏幕密度选择xml。
注意:功能应该相同。
如果:您希望为手机和平板电脑显示不同功能的屏幕。 使用此代码进行检查。
if ((getResources().getConfiguration().screenLayout &
Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE) {
}
希望这对你有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.