una studio startactivity sirve que putextra pasar para otro otra intent desde datos como boton activity abrir android android-intent android-activity

studio - Usando Intent en una aplicación de Android para mostrar otra actividad



putextra android para que sirve (11)

En mi aplicación de Android, tengo dos clases de actividad. Tengo un botón en el primero y quiero mostrar el segundo cuando se hace clic, pero aparece un error. Aquí están las clases:

public class FirstActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button orderButton = (Button)findViewById(R.id.order); orderButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(FirstActivity.this, OrderScreen.class); startActivity(intent); } }); } }

La segunda clase que se debe mostrar cuando se hace clic en el botón, pero nunca lo hace:

public class OrderScreen extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.order); Button orderButton = (Button) findViewById(R.id.end); orderButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { finish(); } }); } }

¿Cómo creo un botón que muestre la segunda actividad?


---- FirstActivity.java -----

package com.mindscripts.eid; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class FirstActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.main); Button orderButton = (Button) findViewById(R.id.order); orderButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(FirstActivity.this,OrderScreen.class); startActivity(intent); } }); } }

--- OrderScreen.java ---

package com.mindscripts.eid; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class OrderScreen extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.second_class); Button orderButton = (Button) findViewById(R.id.end); orderButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { finish(); } }); } }

--- AndroidManifest.xml ----

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.mindscripts.eid" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".FirstActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".OrderScreen"></activity> </application>


Agrega esta línea a tu AndroidManifest.xml:

<activity android:name=".OrderScreen" />


Cuando creas cualquier actividad en el archivo de Android, debes especificarlo en AndroidManifest.xml como

<uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".MyCreativityActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".OrderScreen"></activity> </application>


El problema fue que la Activity OrderScreen no se agregó al AndroidManifest.xml . Una vez que agregué eso como un nodo de aplicación, funcionó correctamente.

<activity android:name=".OrderScreen" />


En el manifiesto

<activity android:name=".OrderScreen" />

En el código de Java donde tienes que colocar el código de intención

startActivity(new Intent(CurrentActivity.this, OrderScreen.class);


Puede utilizar el contexto de la vista que realizó la llamada. Ejemplo:

Button orderButton = (Button)findViewById(R.id.order); orderButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(/*FirstActivity.this*/ view.getContext(), OrderScreen.class); startActivity(intent); } });


Usa este código:

Intent intent=new Intent(context,SecondActivty.class); startActivity(intent); finish();

contexto: referirse al contexto de actividad actual,

Por favor, asegúrese de haber agregado actividad en el archivo de manifiesto de Android.

Código siguiente para agregar actividad en el archivo de manifiesto de Android

<Activity name=".SecondActivity"> </Activity>


agrega la actividad en tu archivo manifiesto

<activity android:name=".OrderScreen" />


b1 = (Button) findViewById(R.id.click_me); b1.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent i = new Intent(MainActivity.this, SecondActivity.class); startActivity(i); } });


<activity android:name="[packagename optional].ActivityClassName"></activity>

Simplemente agregando la actividad a la que queremos cambiar se debe colocar en el archivo de manifiesto


Intent i = new Intent("com.Android.SubActivity"); startActivity(i);