1

Je tente de concaténer des chaînes dans Android en utilisant deux activités. Chaque fois que je saisis deux chaînes et que je clique sur le bouton pour lancer les plantages de l'application sur l'émulateur. Pouvez-vous m'aider à trouver ce que je fais mal ici? Mon code et l'erreur sont ci-dessous.Problèmes avec l'affichage d'une sortie de message à l'aide de deux activités [ANDROID]

activité principale (activité 1)

package com.example.tristan.a1p1n1; 

import android.content.Intent; 
import android.net.Uri; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.EditText; 

public class MainActivity extends AppCompatActivity { 


    public final static String EXTRA_MESSAGE = "com.example.tristan.a1p1n1.MESSAGE"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     // ATTENTION: This was auto-generated to implement the App Indexing API. 
     // See https://g.co/AppIndexing/AndroidStudio for more information. 
     client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build(); 
    } 

    public void sendMessage(View view) { 
     Intent intent = new Intent(this, DICS.class); 
     EditText editText = (EditText) findViewById(R.id.editText); 
     EditText editText2 = (EditText) findViewById(R.id.editText2); 
     String message = editText.getText().toString() + editText2.getText().toString(); 
     intent.putExtra(EXTRA_MESSAGE, message); 
     startActivity(intent); 

    }} 

DICS (Activité 2)

package com.example.tristan.a1p1n1; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.TextView; 

/** 
* Created by Tristan on 2/11/2017. 
*/ 
public class DICS extends AppCompatActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.dics); 

     //TextView mTextView = (TextView)findViewById(R.id.textView2); 
     // mTextView.setText(getIntent().getStringExtra("message")) 
    } 
} 

Mon Message d'erreur:

E/AndroidRuntime: FATAL EXCEPTION: main 
       Process: com.example.tristan.a1p1n1, PID: 3082 
       java.lang.IllegalStateException: Could not execute method for android:onClick 
        at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293) 
        at android.view.View.performClick(View.java:5610) 
        at android.view.View$PerformClick.run(View.java:22265) 
        at android.os.Handler.handleCallback(Handler.java:751) 
        at android.os.Handler.dispatchMessage(Handler.java:95) 
        at android.os.Looper.loop(Looper.java:154) 
        at android.app.ActivityThread.main(ActivityThread.java:6077) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 
       Caused by: java.lang.reflect.InvocationTargetException 
        at java.lang.reflect.Method.invoke(Native Method) 
        at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 
        at android.view.View.performClick(View.java:5610)  
        at android.view.View$PerformClick.run(View.java:22265)  
        at android.os.Handler.handleCallback(Handler.java:751)  
        at android.os.Handler.dispatchMessage(Handler.java:95)  
        at android.os.Looper.loop(Looper.java:154)  
        at android.app.ActivityThread.main(ActivityThread.java:6077)  
        at java.lang.reflect.Method.invoke(Native Method)  
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)  
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)  
       Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.tristan.a1p1n1/com.example.tristan.a1p1n1.DICS}; have you declared this activity in your AndroidManifest.xml? 
        at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1805) 
        at android.app.Instrumentation.execStartActivity(Instrumentation.java:1523) 
        at android.app.Activity.startActivityForResult(Activity.java:4224) 
        at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:50) 
        at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:79) 
        at android.app.Activity.startActivityForResult(Activity.java:4183) 
        at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:859) 
        at android.app.Activity.startActivity(Activity.java:4507) 
        at android.app.Activity.startActivity(Activity.java:4475) 
        at com.example.tristan.a1p1n1.MainActivity.sendMessage(MainActivity.java:41) 
        at java.lang.reflect.Method.invoke(Native Method)  
        at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)  
        at android.view.View.performClick(View.java:5610)  
        at android.view.View$PerformClick.run(View.java:22265)  
        at android.os.Handler.handleCallback(Handler.java:751)  
        at android.os.Handler.dispatchMessage(Handler.java:95)  
        at android.os.Looper.loop(Looper.java:154)  
        at android.app.ActivityThread.main(ActivityThread.java:6077)  
        at java.lang.reflect.Method.invoke(Native Method)  
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)  
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)  

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.example.tristan.a1p1n1.MainActivity"> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="textPersonName" 
     android:text="Enter a String" 
     android:ems="10" 
     android:layout_below="@+id/textView" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:id="@+id/editText" /> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="textPersonName" 
     android:text="Enter a String" 
     android:ems="10" 
     android:id="@+id/editText2" 
     android:layout_below="@+id/editText" 
     android:layout_alignRight="@+id/editText" 
     android:layout_alignEnd="@+id/editText" 
     android:layout_marginRight="11dp" 
     android:layout_marginEnd="11dp" 
     android:layout_marginTop="13dp" /> 

    <Button 
     android:text="+" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/editText2" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_marginTop="23dp" 
     android:id="@+id/button" 
     android:onClick="sendMessage" /> 
</RelativeLayout> 

AndroidManifest.xml

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

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity><!-- ATTENTION: This was auto-generated to add Google Play services to your project for 
    App Indexing. See https://g.co/AppIndexing/AndroidStudio for more information. --> 
     <meta-data 
      android:name="com.google.android.gms.version" 
      android:value="@integer/google_play_services_version" /> 
    </application> 

</manifest> 

dics.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 


    <TextView 
     android:text="TextView" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/textView2" /> 
</LinearLayout> 
+0

publier la mise en page de ' activity_main' et votre manifeste – rafsanahmad007

+0

partagez votre xml s'il vous plaît :) –

+0

@ rafsanahmad007 J'ai ajouté mes xml! – Tristan

Répondre

1

votre bouton Xml devrait être:

<Button 
    android:text="+" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/editText2" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_marginTop="23dp" 
    android:id="@+id/button" 
    android:onClick="sendMessage" /> //change here 

Essayez ceci: dans votre MainActivity

String message = editText.getText().toString() + editText2.getText().toString(); 
intent.putExtra("message", message); 

maintenant en activité Dics:

TextView mTextView = (TextView)findViewById(R.id.textView2); 
    mTextView.setText(getIntent().getStringExtra("message")); //the key ID should match 
+0

Ah oui. J'ai réparé ça. Maintenant, il ne peut pas exécuter la méthode pour android: onClick. J'ai mis à jour le message d'erreur ci-dessus. – Tristan

+0

@Tristan vous devez ajouter ceci dans le manifeste: '' sous l'étiquette de l'application – rafsanahmad007

+0

Ok, cela fonctionne. Merci beaucoup. Donc, dans mon "dics.xml" j'essaie d'afficher le message concaténé (Créé dans MainActivity.java). Y a-t-il un moyen de le faire? Il affiche actuellement le texte par défaut. – Tristan