Question

Dans mon application Android, j'ai deux classes d'activité. J'ai un bouton sur le premier et je veux montrer la seconde quand il est cliqué, mais je reçois une erreur. Voici les classes:

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 seconde classe qui doit apparaître lorsque le bouton est cliqué, mais jamais fait:

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();
      }

    });
  }
}

Comment puis-je créer un bouton qui montrera la deuxième activité?

Était-ce utile?

La solution

La question a été le OrderScreen Activity n'a pas été ajouté à la balise AndroidManifest.xml . Une fois que j'ajouté que comme un nœud d'application, il a fonctionné correctement.

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

Autres conseils

Ajoutez cette ligne à votre AndroidManifest.xml:

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

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

Utilisez ce code:

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

contexte: se référer au contexte de l'activité en cours,

S'il vous plaît assurez-vous que vous avez une activité ajoutée dans le fichier manifeste Android.

code suivant pour ajouter une activité dans le fichier manifeste Android

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

Il suffit d'ajouter l'activité que nous voulons passer à doit être placé dans le fichier manifeste

Lorsque vous créez une activité dans le fichier Android, vous devez indiquer dans AndroidManifest.xml comme

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

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

            }
        });

ajouter l'activité dans votre fichier manifest

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

Dans le Manifest

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

Dans le code Java où vous devez placer le code intention

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

vous pouvez utiliser le contexte de la vue qui a fait l'appel. Exemple:

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);
  }

});
Intent i = new Intent("com.Android.SubActivity");
startActivity(i);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top