Android 我的应用程序停止工作

Android 我的应用程序停止工作,android,android-layout,Android,Android Layout,我正在编写一个包含两个活动的基本应用程序。两者都包含一个显示标题的文本视图,第一个包含一个EditText,用户在其中键入消息并单击旁边的按钮,第二个活动启动,显示用户键入的消息 它有以下问题: 1.当我点击按钮时,应用程序停止说“不幸的是,写入n显示并停止”,而不是启动第二个活动 日志可以在这里找到:,因为将其添加到问题中超出了限制 第一项活动的代码:- package com.practice.myfirstapp1; import android.app.Activity; import

我正在编写一个包含两个活动的基本应用程序。两者都包含一个显示标题的文本视图,第一个包含一个EditText,用户在其中键入消息并单击旁边的按钮,第二个活动启动,显示用户键入的消息

它有以下问题:

1.当我点击按钮时,应用程序停止说“不幸的是,写入n显示并停止”,而不是启动第二个活动

日志可以在这里找到:,因为将其添加到问题中超出了限制

第一项活动的代码:-

package com.practice.myfirstapp1;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
//import android.view.Menu;

public class MainActivity extends Activity {
    public static final String key_name="com.practice.firstApp.key";

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

    public void sendMessage(View view){
        Intent intent= new Intent(this, SecondActivity.class);
        EditText editText=(EditText) findViewById(R.id.EditText1_MainActivity);
        String key_value= editText.getText().toString();
        intent.putExtra(key_name, key_value);
        startActivity(intent);
    }

}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"

    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    tools:context=".MainActivity" >

     <TextView 
        android:id="@+id/TextView1_MainActivity"
        android:layout_alignParentTop="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:layout_centerHorizontal="true"

        android:text="@string/title_MainActivity"
        android:textStyle="bold"/>


    <EditText
        android:id="@+id/EditText1_MainActivity"


        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/TextView1_MainActivity"

        android:hint="@string/EditText_MainActivity"
        android:textStyle="italic" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/TextView1_MainActivity"
        android:layout_toRightOf="@id/EditText1_MainActivity"

        android:text="@string/Button_MainActivity"

        android:onClick="sendMessage"/>

</RelativeLayout>
package com.practice.myfirstapp1;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

class SecondActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        Intent intent= getIntent();
        String intent_value= intent.getStringExtra(MainActivity.key_name);

        TextView textView= new TextView(this);
        textView= (TextView) findViewById(R.id.TextView2_SecondActivity);

        textView.setText(intent_value);

    }
}
    <?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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" 

    tools:context=".SecondActivity">

    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"

        android:layout_centerHorizontal="true"

        android:text="@string/title_SecondActivity"
        android:textStyle="bold"/>

    <TextView
        android:id="@+id/TextView2_SecondActivity"

        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</RelativeLayout>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" 
android:gravity="center_vertical"
tools:context=".SecondActivity">

<TextView 
    android:layout_alignParentTop="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@+string/title_SecondActivity"
    android:textStyle="bold"/>
<TextView
    android:id="@+id/TextView2_SecondActivity"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
第一项活动的布局:-

package com.practice.myfirstapp1;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
//import android.view.Menu;

public class MainActivity extends Activity {
    public static final String key_name="com.practice.firstApp.key";

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

    public void sendMessage(View view){
        Intent intent= new Intent(this, SecondActivity.class);
        EditText editText=(EditText) findViewById(R.id.EditText1_MainActivity);
        String key_value= editText.getText().toString();
        intent.putExtra(key_name, key_value);
        startActivity(intent);
    }

}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"

    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    tools:context=".MainActivity" >

     <TextView 
        android:id="@+id/TextView1_MainActivity"
        android:layout_alignParentTop="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:layout_centerHorizontal="true"

        android:text="@string/title_MainActivity"
        android:textStyle="bold"/>


    <EditText
        android:id="@+id/EditText1_MainActivity"


        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/TextView1_MainActivity"

        android:hint="@string/EditText_MainActivity"
        android:textStyle="italic" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/TextView1_MainActivity"
        android:layout_toRightOf="@id/EditText1_MainActivity"

        android:text="@string/Button_MainActivity"

        android:onClick="sendMessage"/>

</RelativeLayout>
package com.practice.myfirstapp1;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

class SecondActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        Intent intent= getIntent();
        String intent_value= intent.getStringExtra(MainActivity.key_name);

        TextView textView= new TextView(this);
        textView= (TextView) findViewById(R.id.TextView2_SecondActivity);

        textView.setText(intent_value);

    }
}
    <?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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" 

    tools:context=".SecondActivity">

    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"

        android:layout_centerHorizontal="true"

        android:text="@string/title_SecondActivity"
        android:textStyle="bold"/>

    <TextView
        android:id="@+id/TextView2_SecondActivity"

        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</RelativeLayout>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" 
android:gravity="center_vertical"
tools:context=".SecondActivity">

<TextView 
    android:layout_alignParentTop="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@+string/title_SecondActivity"
    android:textStyle="bold"/>
<TextView
    android:id="@+id/TextView2_SecondActivity"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
第二项活动的布局:-

package com.practice.myfirstapp1;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
//import android.view.Menu;

public class MainActivity extends Activity {
    public static final String key_name="com.practice.firstApp.key";

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

    public void sendMessage(View view){
        Intent intent= new Intent(this, SecondActivity.class);
        EditText editText=(EditText) findViewById(R.id.EditText1_MainActivity);
        String key_value= editText.getText().toString();
        intent.putExtra(key_name, key_value);
        startActivity(intent);
    }

}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"

    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    tools:context=".MainActivity" >

     <TextView 
        android:id="@+id/TextView1_MainActivity"
        android:layout_alignParentTop="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:layout_centerHorizontal="true"

        android:text="@string/title_MainActivity"
        android:textStyle="bold"/>


    <EditText
        android:id="@+id/EditText1_MainActivity"


        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/TextView1_MainActivity"

        android:hint="@string/EditText_MainActivity"
        android:textStyle="italic" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/TextView1_MainActivity"
        android:layout_toRightOf="@id/EditText1_MainActivity"

        android:text="@string/Button_MainActivity"

        android:onClick="sendMessage"/>

</RelativeLayout>
package com.practice.myfirstapp1;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

class SecondActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        Intent intent= getIntent();
        String intent_value= intent.getStringExtra(MainActivity.key_name);

        TextView textView= new TextView(this);
        textView= (TextView) findViewById(R.id.TextView2_SecondActivity);

        textView.setText(intent_value);

    }
}
    <?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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" 

    tools:context=".SecondActivity">

    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"

        android:layout_centerHorizontal="true"

        android:text="@string/title_SecondActivity"
        android:textStyle="bold"/>

    <TextView
        android:id="@+id/TextView2_SecondActivity"

        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</RelativeLayout>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" 
android:gravity="center_vertical"
tools:context=".SecondActivity">

<TextView 
    android:layout_alignParentTop="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@+string/title_SecondActivity"
    android:textStyle="bold"/>
<TextView
    android:id="@+id/TextView2_SecondActivity"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

字符串资源文件:-

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Write n Display</string>
    <string name="action_settings">Settings</string>

    <string name="title_MainActivity">WRITE</string>
    <string name="EditText_MainActivity">Your Message here</string>

    <string name="Button_MainActivity">Send</string>

    <string name="title_SecondActivity">DISPLAY</string>

</resources>

写n显示
设置
写
你的留言在这里
发送
展示
ANDROID清单文件:-

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.practice.myfirstapp1"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme"
        android:debuggable="true" >

        <activity
            android:name="com.practice.myfirstapp1.MainActivity"
            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="com.practive.myfirstapp1.SecondActivity"
            android:label="@string/app_name">
        </activity>
    </application>

</manifest>

要解决第一个问题,请在两个xml文件的文本视图中添加以下代码

原因:您没有在您的文本视图中放置
android:layout\u centerHorizontal=“true”

android:layout_alignParentTop="true"
 android:layout_centerHorizontal="true"
 android:text="@string/title_MainActivity"
要解决第二个问题:更改第一个活动的布局:

原因:安卓:版面宽度为“0dp”。它应该是换行内容、填充父项或匹配父项

<EditText
    android:id="@+id/EditText1_MainActivity"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_below="@+id/TextView1_MainActivity"
    android:hint="@string/EditText_MainActivity"
    android:textStyle="italic" />
改变你的第二项活动

原因:TextView TextView=新的TextView(此);不是初始化xml视图任何组件的正确方法

TextView textView= new TextView(this);
textView= (TextView) findViewById(R.id.TextView2_SecondActivity);
textView.setText(intent_value);
致:


private void sendMessage(查看视图)
更改为
public void sendMessage(查看视图)
(private to public)

第一项活动的布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical" >

 <TextView 
    android:id="@+id/TextView1_MainActivity"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@+string/title_MainActivity"
    android:textStyle="bold"/>


<EditText
    android:id="@+id/EditText1_MainActivity"
     android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:hint="@string/EditText_MainActivity"
    android:textStyle="italic" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/Button_MainActivity"
    android:onClick="sendMessage"/>

第二项活动的布局:-

package com.practice.myfirstapp1;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
//import android.view.Menu;

public class MainActivity extends Activity {
    public static final String key_name="com.practice.firstApp.key";

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

    public void sendMessage(View view){
        Intent intent= new Intent(this, SecondActivity.class);
        EditText editText=(EditText) findViewById(R.id.EditText1_MainActivity);
        String key_value= editText.getText().toString();
        intent.putExtra(key_name, key_value);
        startActivity(intent);
    }

}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"

    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    tools:context=".MainActivity" >

     <TextView 
        android:id="@+id/TextView1_MainActivity"
        android:layout_alignParentTop="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:layout_centerHorizontal="true"

        android:text="@string/title_MainActivity"
        android:textStyle="bold"/>


    <EditText
        android:id="@+id/EditText1_MainActivity"


        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/TextView1_MainActivity"

        android:hint="@string/EditText_MainActivity"
        android:textStyle="italic" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/TextView1_MainActivity"
        android:layout_toRightOf="@id/EditText1_MainActivity"

        android:text="@string/Button_MainActivity"

        android:onClick="sendMessage"/>

</RelativeLayout>
package com.practice.myfirstapp1;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

class SecondActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        Intent intent= getIntent();
        String intent_value= intent.getStringExtra(MainActivity.key_name);

        TextView textView= new TextView(this);
        textView= (TextView) findViewById(R.id.TextView2_SecondActivity);

        textView.setText(intent_value);

    }
}
    <?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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" 

    tools:context=".SecondActivity">

    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"

        android:layout_centerHorizontal="true"

        android:text="@string/title_SecondActivity"
        android:textStyle="bold"/>

    <TextView
        android:id="@+id/TextView2_SecondActivity"

        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</RelativeLayout>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" 
android:gravity="center_vertical"
tools:context=".SecondActivity">

<TextView 
    android:layout_alignParentTop="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@+string/title_SecondActivity"
    android:textStyle="bold"/>
<TextView
    android:id="@+id/TextView2_SecondActivity"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />


你可以这样解决你的问题

1.更换

android:gravity=“center\u horizontal”
by
android:layout\u gravity=“center\u horizontal”

2.为第一个活动xml的编辑文本指定布局宽度为
wrap\u content

3.将您的
sendMessage
方法设置为公共而非私有

要在Eclipse中获取logcat,请转到窗口->显示视图->其他->Android->logcat


在eclipse窗口的
QuickAccess
编辑框中写入
LogCat
(右上角,打开按钮之前)。只需选择LogCat,它将在当前prospec中打开LogCat窗口

LogCat显示以下内容:

原因:android.content.ActivityNotFoundException:无法找到 显式活动类 {com.practice.myfirstapp1/com.practice.myfirstapp1.SecondActivity}; 您是否在AndroidManifest.xml中声明了此活动

您确实在清单中定义了SecondActivity,但包名称错误(android:name=“com.practive.myfirstapp1.SecondActivity”应该是ndroid:name=“com.practice.myfirstapp1.SecondActivity” )


应该是

<activity
            android:name="com.practice.myfirstapp1.MainActivity"
            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="com.practice.myfirstapp1.SecondActivity"
            android:label="@string/app_name">
        </activity>


首先,对于logcat问题,请返回Java,然后单击Windows->show view->other->logcat。。它将与控制台选项卡一起提供。。。尝试一下,如果成功,将错误添加到代码中。@OsamaEspil它是相同的::E/():设备已断开连接:1断开设备并再次连接,然后粘贴logcat详细信息。我已编辑了问题并添加了指向logcat结果的链接,因为在此处粘贴它们超出了问题的允许长度@nOiAdThis已在第一个活动中显示编辑文本。但是请告诉我在sendMessage()中创建EditText有什么问题。我是否应该从中了解到,所有GUI元素都必须在onCreate()中创建,尽管它们稍后可以在其他方法中操作?其次,第二个活动仍未启动,应用程序停止。你也能帮我吗?请把你的日志贴出来。调试sendMessage(视图)。此方法是否正在调用?你宣布你的第二个类显化了吗?第一个和第二个问题的答案解决了第一个和第二个问题。谢谢。第三个问题的答案对它没有帮助:1。在打开第二个活动之前,应用程序仍然会停止。2.这是一个99%相似应用程序的教程:[link]()他们在sendMessage()中初始化了editText,我也是这样做的(请参阅下一条注释中的-coninued!上一条注释的继续部分-“启动第二个活动”)中的代码),他们通过TextView TextView=new TextView初始化了文本视图(这);在第二个活动的代码中。我正在编辑我的问题,并进行了一些有帮助的调整,可以在这里找到日志:因为在这里发布的日志超过了问题的长度。我将感谢您的指导和帮助。`android:gravity=“center_vertical”`给出了表示字符串类型不允许的错误(在“重力”下,值为“垂直中心”)好的,错误现在消失了。但是在你调整之后,除了第一个活动中的所有小部件都出现在屏幕中央之外,什么都没有发生。我不想这样,但这没关系。重要的是第二个活动现在仍在显示。应用程序在此之前停止。确保你更改了private void sendMessage(查看视图)以公开作废sendMessage(查看视图)。我这样做了。我想你已经尝试自己运行代码了。它在你这方面工作正常吗?经过一些调整后,它得到了改进,我编辑了代码和我问题中的问题。但在第二个活动出现之前,应用程序仍然停止。你可以在此处看到日志:更改sendMessage()ToPublic显然对我没有任何帮助,但它在t中的示例代码中显示为public