我有一个画廊应用程序,其中包含一些类别:动物,花卉...我创建了一个活动的每个画廊,所有画廊中的此活动具有相同的内容:
onCreate:
tSpeak = new TextToSpeech(this, new TextToSpeech.OnInitListener() { ...
AdView adView = new AdView(MainActivity.this); ...
//some checks to change images:
if(fase == 1) { imageView1.setImageResource(R.drawable.flower1); ...
if(fase == 100) ...
some setOnClickListener
after that some onRewardedVideo functions, a next() function that will intent to the same activity to show next image on this gallery (`fase` + 1)
我想知道的是,我是否要重复所有这些事情(TextToSpeech,侦听器,有偿视频功能,adview功能),而只更改每个活动库中的if
检查? strong>这是每个活动库中唯一会改变的事情,我不想对所有类别仅使用一个活动,因为在这种情况下,我可能拥有超过2000个ifs
,并且这样做不利于工作。
我只想在每个类别中插入ifs
即可在此处设置图像资源,而无需一次又一次地复制所有活动。有什么想法吗?
答案 0 :(得分:2)
您可以在BaseActivity
中创建常用功能,并从BaseActivity
扩展您的活动。
对于ifs条件检查,您可以在BaseActivity
中有一个布尔字段,您可以在每个子类中覆盖该布尔字段(在这种情况下,是您的实际活动)。
一个更好的选择是仅在Bundle
中传递您的类别时才进行一项活动。现在,根据您的类别,您可以switch
覆盖值并保留您的变化。
答案 1 :(得分:2)
我建议您使用一个活动,并通过Intent Extra将图库ID作为参数传递给活动。
您可以从活动中的静态地图中获取当前画廊的图像资源ID。
您还可以使用每个片段只有一个图库的ViewPager,以使您的用户可以快速浏览各个图库。
查看此以获得更多信息: https://developer.android.com/training/animation/screen-slide