Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何创建自适应Android应用程序_Java_Android_User Interface_Dynamic_Android Fragments - Fatal编程技术网

Java 如何创建自适应Android应用程序

Java 如何创建自适应Android应用程序,java,android,user-interface,dynamic,android-fragments,Java,Android,User Interface,Dynamic,Android Fragments,我希望安卓应用程序能够根据用户所在的用户组的不同而有不同的外观和行为。例如,一个用户登录,应用程序会告诉服务器它是哪个用户。从服务器返回的信息可能因用户而异,因此我希望应用程序能够创建与信息匹配的不同UI元素 可能发生变化的情况有: 基于不同索引的数据排序列表 对话 不同的输入字段,以及不同数量的字段 颜色和图标可能会改变,尽管这并不难 可能所有函数都在-/Exclude中,比如在数据库中添加/删除字段,显示不同的图形等 很抱歉,这是一个模糊的问题,也许问这样一个一般性的问题并不明智,但我还

我希望安卓应用程序能够根据用户所在的用户组的不同而有不同的外观和行为。例如,一个用户登录,应用程序会告诉服务器它是哪个用户。从服务器返回的信息可能因用户而异,因此我希望应用程序能够创建与信息匹配的不同UI元素

可能发生变化的情况有:

  • 基于不同索引的数据排序列表
  • 对话 不同的输入字段,以及不同数量的字段
  • 颜色和图标可能会改变,尽管这并不难
  • 可能所有函数都在-/Exclude中,比如在数据库中添加/删除字段,显示不同的图形等
很抱歉,这是一个模糊的问题,也许问这样一个一般性的问题并不明智,但我还不知道应用程序的细节,只是概要,我想从某个地方开始

这是唯一的办法吗

if(condition)
   //intitialize one GUI element
else if(condition2)
   //initialize another GUI element

直到无限,还是有其他方法?

同事们,为什么不使用策略模式? 在我们的情况下,我建议: 1) 在将由具体类实现的接口中分离所需的行为。例如:

public interface IViewBehavior {
    public void setSorting();
    public void setFields();
    public void setColors();

}
public interface IDataBehavior {
    public void setData(); 
}
2) 使用组合并通过授权将这些行为集成(添加)到应用程序对象中:

public class RickardApp extends Application {

    IDataBehavior dataBehavior;
    IViewBehavior viewBehavior;

    public void setDataBehavior(IDataBehavior dataBehavior) {
        this.dataBehavior = dataBehavior;
    }

    public void setViewBehavior(IViewBehavior viewBehavior) {
        this.viewBehavior = viewBehavior;
    }

}
set*Behavior()方法将动态定义应用程序的行为。
我们只需要创建“行为”类,这样就可以知道细节了。

这听起来像是一个
if/else
switch case
,但如果不知道更多关于您将要处理的数据,就很难说了。这在Android上是一个相当广泛的问题,有十几种方法可以用不同的语法和不同的编程模式来实现您所描述的。正如codeMagic所说,在描述您的用例时,您必须更加具体。否则我们将无法帮助您。我试图添加一些示例,很抱歉,这些示例不明确,我还不知道细节。