在我的Android应用程序中,我想根据服务器上的JSON配置文件显示不同的应用程序布局,例如,如果配置布局键设置为ListView,而不是在应用程序启动时显示ListView,如果配置布局键设置为GridView,则相同比在应用程序中显示GridView。
为此,我有:
public void sendView(View view) throws JSONException, IOException{
String[] viewType = pm.getScreetypeConfigFromJsonElement();
if ( viewType[0] == "LV"){
Intent intent = new Intent(this, AUListView.class);
startActivity(intent);
}else if(){....} //For any other view
}
现在我在MainActivity中调用了这个函数
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
sendView(/*Cant solve how to pass view */);
} catch (JSONException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
.
.
.
}
如何解决在Android中基于JSON配置值启动不同AppLayout的问题。
答案 0 :(得分:0)
有很多方法可以做到这一点。一个简单的解决方案是制作不同的布局,并根据您想要的布局调用setContentView()
。例如,为您的活动制作2个布局。其中一个有ListView
,另一个有GridView
说。您可以根据:
String[] viewType = pm.getScreetypeConfigFromJsonElement();
if ( viewType[0] == "LV"){
setContentView(R.layout.main_layout_with_list_view);
else if ( viewType[0] == "GV"){
setContentView(R.layout.main_layout_with_grid_view);
您可以将此代码放在onCreate()
方法中,以根据您的JSON值动态扩充布局。
答案 1 :(得分:0)
;调用该方法中使用setContentView(R.layout.activity_main)检查json键的方法;在你的条件
if(viewType[0]== type1)
setContentView(R.layout.yourlayout1);
else if(viewType[0]== type2)
setContentView(R.layout.yourlayout2);
您不必让不同的活动具有multilpe布局并将所有代码放入此活动中,并且它将按照您的要求运行