2017-10-09 3 views
0

Mon fichier manifest.xml génère une erreur pour ".RoleActivity". Mais si je remplace mon ".roleActivity" par d'autres pour vérifier, ils sont tous d'accord. Voici mon manifeste.xmlIntégration de classe dans Manifest: application arrêtée

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.zobaed.androidlogin" > 
<uses-permission android:name="android.permission.INTERNET" /> 
<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme" > 
    <activity android:name=".RoleActivity" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

     <category android:name="android.intent.category.LAUNCHER"/> 
     </intent-filter> 
    </activity> 
    <activity android:name=".DoctorLoginActivity"> 
     </activity> 
    <activity android:name=".PatientLoginActivity"> 
     </activity> 

    </application> 
    </manifest> 

Voici mon RoleActivity. J'ai essayé d'écrire le cas de commutation ici.

public class RoleActivity extends AppCompatActivity { 

    private Button btnPatient; 
    private Button btnDoctor; 
    private Button btnGuest; 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.log_in_role); 


    btnPatient = (Button) findViewById(R.id.btpatient); 
    btnDoctor = (Button) findViewById(R.id.btdoctor); 
    btnGuest = (Button) findViewById(R.id.btguest); 

    btnPatient.setOnClickListener((View.OnClickListener) this); 
    btnDoctor.setOnClickListener((View.OnClickListener) this); 
    btnGuest.setOnClickListener((View.OnClickListener) this); 
    } 

    public void onClick(View v) { 
    switch (v.getId()) { 
     case R.id.btdoctor: { 

      Intent i = new Intent(getApplicationContext(), DoctorLoginActivity.class); 
      startActivity(i); 
      break; 
     } 

     case R.id.btpatient: { 

      Intent i = new Intent(getApplicationContext(), PatientLoginActivity.class); 
      startActivity(i); 
      break; 
     } 

    } 
} 

} 
+0

Toutes les activités se trouvent-elles dans le même package? – Sony

+0

oui. Tous sont sous le même paquet. – Zobs

+0

Avez-vous une trace de pile lors de l'exécution de l'application? – Sony

Répondre

1

implémenter onClickListner dans Role Classe d'activité et changement de code à

btnPatient.setOnClickListener(this); 
btnDoctor.setOnClickListener(this); 
btnGuest.setOnClickListener(this); 
+0

Je viens de le faire et ça marche! Je vous remercie! – Zobs

1

Votre activité n'applique pas View.OnClickListener. Si vous n'implémentez pas View.OnClickListener sur votre activité, vous ne pouvez pas convertir l'activité en tant que OnClickListener. C'est la raison pour laquelle vous obtenez une erreur, probablement une ClassCastException

btnPatient.setOnClickListener((View.OnClickListener) this); 
    btnDoctor.setOnClickListener((View.OnClickListener) this); 
    btnGuest.setOnClickListener((View.OnClickListener) this); 

mettre en œuvre View.OnClickListener sur votre activité. Changer

public class RoleActivity extends AppCompatActivity 

à

public class RoleActivity extends AppCompatActivity implements View.OnClickListener 

et vous pouvez supprimer cette coulée

btnPatient.setOnClickListener(this); 
btnDoctor.setOnClickListener(this); 
btnGuest.setOnClickListener(this); 

si vous n'êtes pas implemeting View.OnClickListener sur votre activité, vous pouvez ajouter l'écouteur de clic comme une classe interne anonyme gérer les clics sur les vues

+0

Je viens de le faire et ça marche! Je vous remercie! – Zobs