)は動作しません。私は私のボタンをクリックして、私は次のエラーを取得するとき、それはアプリをクラッシュ:FragmentActivityでstartActivity(intent)の代わりに使用するものは何ですか? FragmentActivity、startActivity(中何らかの理由で
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.name.app/com.example.name.app.WorldTabBar}: java.lang.ClassCastException: com.example.name.app.WorldTabBar cannot be cast to android.app.Activity
は、ここに私のコードです:
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback{
Button live;
private GoogleMap mMap;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
final SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
live=findViewById((R.id.GoToLive));
live.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view) {
Intent startIntent = new Intent(MapsActivity.this, WorldTabBar.class);
startActivity(startIntent);
}
});
startActivity()は、FragmentActivityでアプリケーションをクラッシュさせます。 FragmentActivityではgetActivity()を使用することができません。なぜなら私は単に ".this"を使用するはずですが、startActivity()では動作しないからです。私はちょうど断片を拡張し、rootViewでonCreateViewメソッドへのonCreateを変更使用し、FragmentActivityの代わりにしようとした
は、(getActivityを追加しました)どこでも
getActivity().startActivity(startIntent); //<-didn't work, crashes again
はここで、私のmanifest.xmlです:
</activity>
<activity
android:name=".MainActivity"
android:exported="true"
android:label="@string/title_activity_main" />
<activity android:name=".WorldTabBar" />
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/myKey" />
<activity
android:name=".MapsActivity"
android:label="@string/title_activity_maps"></activity>
</application>
startActivity()の代わりに使用できるものがありますが、同じアクションを実行するのでしょうか?実際には...
Intent startIntent = new Intent(MapsActivity.this, WorldTabBar.class);
... ^上記のコードは、startActivity(せずにそれ自体で動作します)でも、しかし、私は今私overridePendingTransitionコードが認識されません、スタートコードなしだと思います。それで、私はFragmentActivityでstartActivity()のように動作しますが、startActivity()では使用できないコードがいくつかありますか?
EDIT:
WorldTabBarクラス:
public class WorldTabBar extends Fragment {
Button world;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.activity_world_tabbar, container, false);
world=rootView.findViewById(R.id.GoToWorld);
world.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent startIntent = new Intent(getContext(), MapsActivity.class);
startActivity(startIntent);
getActivity().overridePendingTransition(R.anim.slide_in_right, R.anim.no_anim);
}
});
return rootView;
}
}
あなたは 'WorldTabBar'ためのコードを追加してください可能性:別のオプション - - 実行時にフラグメントを追加https://developer.android.com/training/basics/fragments/fragment-ui.html#AddAtRuntime
2)コードの変更は、それが活動するには? – Katharina
コードにWorldTabBarクラスを追加しました。 – iBEK
アクティビティクラスからフラグメントを開始する場合は、次のリンクを参照してください。https://teamtreehouse.com/community/starting-a-fragment-from-anactivityそれはあなたを助けるかもしれません。 – Opriday