当你调用一个函数而不是很多函数时,如何在一个javafile中放入一个活动

时间:2018-02-22 04:45:12

标签: java android

所以我有这个fab菜单,每个按钮有不同的活动我想要的是将函数放入一个java文件而不是创建大量的java文件来调用按钮中的不同函数

这是一个java文件 - SVAuditorium.class

public class SVAuditorium extends AppCompatActivity {

    private static final LatLng Auditorium = new LatLng(10.294335, 123.880809);

    @Override
    protected void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.street_view);

        SupportStreetViewPanoramaFragment streetViewPanoramaFragment =
                (SupportStreetViewPanoramaFragment)
                        getSupportFragmentManager().findFragmentById(R.id.streetviewpanorama);
        streetViewPanoramaFragment.getStreetViewPanoramaAsync(
                new OnStreetViewPanoramaReadyCallback() {
                    @Override
                    public void onStreetViewPanoramaReady(StreetViewPanorama panorama) {
                        if (savedInstanceState == null) {
                            panorama.setPosition(Auditorium);
                        }
                    }
                });
    }

}

这就是我从SVAuditorium和其他人那里调用活动所做的。

case R.id.fab_auditorium:
    startActivity(new Intent(this, SVSAuditorium.class));
    break;
case R.id.fab_library:
    startActivity(new Intent(this, SVLibrary.class));
    break;
case R.id.fab_main:
    startActivity(new Intent(this, SVMainBuilding.class));
    break;

2 个答案:

答案 0 :(得分:1)

正如你所声明的那样,你在每个Activity中只有lat-long的变化,我建议保留你想要的单个活动并通过意图传递lat-long。这是一个示例代码,展示了如何实现该行为。

Intent intent = new Intent(MainActivity.this, SVActivity.class);
Bundle longLat = new Bundle();
longLat.putDouble("LONGITUDE", longitude);
longLat.putDouble("LATITUDE", latitude);
intent.putExtras(longLat);
startActivity(intent);

像这样获取SVActivity中的纬度和经度。

Bundle longLat = getIntent().getExtras();
double longitude = longLat.getDouble("LONGITUDE");
double latitude = longLat.getDouble("LATITUDE");

根据SVActivity

中的值初始化您的观看次数

答案 1 :(得分:1)

  

Latlng只是与众不同

LatLng implements Parcelable

以来

您只需要一个 Java文件,您可以使用Intent.putExtra("latlng", latlng)通过Intent传递LatLng,您可以在其中为每个点击的项目定义该变量

见答案 - Android: How to pass Parcelable object to intent and use getParcelable method of bundle?

然后在一个Activity的onCreate方法中,您可以LatLng latlng = getIntent().getParcelableExtra("latlng")