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

时间:2013-03-17 19:40:04

标签: java android user-interface dynamic android-fragments

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

可能会改变的事情是:

  • 根据不同的索引对数据列表进行排序
  • 与...对话 不同的输入字段,以及不同的输入字段
  • 颜色和图标可能会发生变化,但这应该不会那么难。
  • 也许可以完全填充/排除某些功能,例如添加/删除数据库中的字段,显示不同的图表等。

我很抱歉这个含糊不清,也许提问一般这个问题并不聪明,但我还不知道应用程序的具体细节,只是大纲,我想在某个地方开始。

唯一的方法是做一堆

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

直到无穷大,还是有另一种方式?

1 个答案:

答案 0 :(得分:1)

同事们,为什么不使用策略模式?

在我们的案例中,我建议:

1)在将由具体类实现的接口中分离所需的行为。 E.g:

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

}
public interface IDataBehavior {
    public void setData(); 
}

2)使用组合并通过委托:

将这些行为集成(添加)到Application对象中
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()方法将动态定义应用程序的行为。 我们只需要在知道细节时创建“行为” - 类。