2016-04-28 1 views
2

Donc, je suis très nouveau pour le développement Android et cela peut être une question simple où il me manque une chose simple. J'ai une classe où j'ai un bouton et j'essaye de cliquer sur un bouton et de passer à une autre activité.bouton android onClick pas transition vers une nouvelle activité

public class ContentProfile extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_content_profile); 

    } 

    public void settingsPage(View v){ 
     Intent intent = new Intent(ContentProfile.this, ContentSettings.class); 
     startActivity(intent); 
    } 

} 

J'essaie d'ouvrir la classe ContentSetting. Le XML pour ContentProfile est:

<Button 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Settings" 
    android:layout_alignParentRight="true" 
    android:id="@+id/button11" 
    android:onClick="settingsPage"/> 

Et les paramètres de contenu ressemble à:

public class ContentSettings extends AppCompatActivity { 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_content_settings); 

    } 


} 

Je suis en train de passer d'un bouton dans ContentProfile à ContentSettings. J'ai lu la documentation pour ce here. J'ai essayé de sortir de cette documentation mais je n'arrive pas à la comprendre. Dois-je regarder un autre document pour comprendre cela? Est-ce que je regarde quelque chose de simple?

EDIT: voici mon AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.user.speed_read"> 

    <!-- To auto-complete the email text field in the login form with the user's emails --> 
    <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
    <uses-permission android:name="android.permission.READ_PROFILE" /> 
    <uses-permission android:name="android.permission.READ_CONTACTS" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity 
      android:name=".LoginActivity" 
      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=".ContentProfile" 
      android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="com.example.user.speed_read.ContentSettings" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity android:name=".ContentSettings"></activity> 
    </application> 

</manifest> 

Répondre

1

Si vous voulez passer une autre activité quand cliquez sur le bouton, vous pouvez utiliser le bouton clic écoute. moyen facile de le faire. Si vous le faites de cette façon, vous pouvez supprimer onclick de votre xml.

final Button button = (Button) findViewById(R.id.button11); 
    button.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      Intent intent = new Intent(ContentProfile.this, ContentSettings.class); 
      startActivity(intent); 
     } 
    }); 
+0

J'ai essayé cette solution et encore rien ne se passe lorsque je clique sur le bouton. Vraiment déconcerté. – Anderology

+0

Utilisez-vous ce code dans la méthode onCreate? – yukocan

+0

oui c'est. Je ne ferai toujours rien. – Anderology

0
  1. Où est votre méthode onClickListener dans la classe de contenu de profil? Votre méthode onClickListener doit avoir la méthode settingsPage à l'intérieur. Exemple:

final Button settingsButton = (Button) findViewById(R.id.settingsButton);

View.OnClickListener goToSettings = new View.OnClickListener(){ 
     @Override 
     public void onClick(View view) { 
      openSettings(); 
     } 
}; 

settingsButton.setOnClickListener(goToSettings);

  1. Vous devez spécifier l'activité ContentSettings dans AndroidManifest.xml

  2. activité ContentSettings doit définir le nom de contenu correct pour la mise en page XML. Activity_content_settings est le nom exact de votre mise en page XML?

+0

Que fait openSettings()? est-ce juste ma méthode settingsPage()? Je ne sais pas comment vous brisez tout cela. Est-ce que View.OnClickListener va dans onCreate? – Anderology

+0

également les points 2 et 3 sont tous deux oui. Son dans le AndroidManifest et exact même XML – Anderology

+0

openSettings est juste votre méthode settingsPage, oui. C'est juste le nom que j'ai appelé la méthode des pages de paramètres dans une de mes propres applications. Mais c'est la même chose. – joshgoldeneagle