当您调用函数而不是许多Android时,如何在一个Javafile中进行一项活动



所以我有此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;

正如您所说的那样,您在每个Activity中只有长时间的变化,我建议您保留一项像您想要的单个活动,并通过意图通过纬度。这是一个示例代码,显示如何实现行为。

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中的值初始化您的观点。

latlng只是不同的

因为LatLng implements Parcelable

您只需要一个 Java文件,您就可以使用Intent.putExtra("latlng", latlng)通过意图传递latlng,在其中您可以在其中定义每个单击项目

请参阅答案 - Android:如何将包裹的对象传递给意图并使用捆绑包的方法?

然后,在该活动的on创作方法中,您可以LatLng latlng = getIntent().getParcelableExtra("latlng")

最新更新