Sintaxis de intento de Android

En mis intentos por descubrir cómo iniciar un nuevo intento en mi aplicación, he encontrado varias formas de expresarlo.

Esta sintaxis devuelve un error de tiempo de ejecución, es decir, una excepción ActivityNotFound

Intent in = new Intent("com.something.something"); 

Por supuesto, mi manifiesto de Android contiene una acción dentro del filtro de intención:

<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> 

Este formato funciona:

Intent in = new Intent(MainActivity.this, SecondActivity.class); 

También probé lo siguiente:

Intent in = new Intent(this, SomeActivity.class); 

Eso fue recomendado en un libro que estoy leyendo. Esto devuelve un error de tiempo de ejecución, actividad no encontrada

Esto hace que Eclipse me lance de un lado a otro entre setClass y setClassName infinitamente:

 Intent in = new Intent().setClass(this, SecondActivity.class);

Lo estoy usando en un método onclick:

ok.setOnClickListener(new View.OnClickListener()
    {

        @Override
        public void onClick(View v)
        {

            Intent in = new Intent(MainActivity.this, SecondActivity.class);
            startActivity(in);
        }
    });
}

¿Cuál es la diferencia entre estos y por qué solo uno de ellos está trabajando para mí?

Saludos / M

Respuestas a la pregunta(1)

Su respuesta a la pregunta