1

Ich versuche, Strings in Android mit zwei Aktivitäten verketten. Jedes Mal, wenn ich zwei Strings eingeben und den Knopf drücken, um die App zu starten, stürzt der Emulator ab. Kannst du mir helfen zu finden, was ich hier falsch mache? Mein Code und der Fehler sind unten.Probleme beim Anzeigen einer Nachrichtenausgabe mit zwei Aktivitäten [ANDROID]

Hauptaktivität (Aktivität 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 (Aktivität 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")) 
    } 
} 

Meine Fehlermeldung:

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

schreiben das Layout der ' activity_main' und ur Manifest – rafsanahmad007

+0

teile deine xml bitte :) –

+0

@ rafsanahmad007 Ich habe meine xml's hinzugefügt! – Tristan

Antwort

1

Ihr Knopf Xml sollte sein:

<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 

Try this: in Ihre MainActivity

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

Jetzt in Dics Aktivität:

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

Ah ja. Das habe ich behoben. Jetzt kann es die Methode für Android nicht mehr ausführen: onClick. Ich habe die obige Fehlermeldung aktualisiert. – Tristan

+0

@Tristan müssen Sie dies in Manifest hinzufügen: '' unter Anwendung tag – rafsanahmad007

+0

Ok, das funktioniert. Vielen Dank. Also versuche ich in meiner "dics.xml" die verkettete Nachricht anzuzeigen (Created in MainActivity.java). Kann ich das irgendwie machen? Es zeigt derzeit den Standardtext an. – Tristan

Verwandte Themen