アプリで新しいインテントを開始する方法を見つけようとして、それを表現するいくつかの方法に出くわしました。
この構文は、ランタイムエラー、つまりActivityNotFound例外を返します。
Intent in = new Intent("com.something.something");
もちろん、私のAndroidマニフェストにはインテントフィルター内のアクションが含まれています。
<activity
android:name=".SecondActivity"
android:label="@string/title_activity_second" >
<intent-filter>
<action android:name="com.something.something" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
このフォーマットは機能します:
Intent in = new Intent(MainActivity.this, SecondActivity.class);
私も次のことを試しました:
Intent in = new Intent(this, SomeActivity.class);
それは私が読んでいる本で推薦されました。これは実行時エラー、activitynotfoundを返します
これにより、EclipseはsetClassとsetClassNameの間を無限に行き来します。
Intent in = new Intent().setClass(this, SecondActivity.class);
私はそれをonclickメソッドで使用しています:
ok.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Intent in = new Intent(MainActivity.this, SecondActivity.class);
startActivity(in);
}
});
}
これらの違いは何ですか?なぜそれらの1つだけが私のために働いているのですか?
よろしく/M