我是一名新的Android开发人员,在Android网站上关注该教程时遇到了问题 - http://developer.android.com/training/basics/firstapp/starting-activity.html
我的程序加载到模拟器上很好,但是当您在EditText中键入内容然后点击发送按钮时,会弹出一个窗口,说“应用程序已停止工作”。似乎我的新活动没有被创建,我不确定为什么。我已经搜索了网络(和我的代码),看看我是否可以得到一个解决方案,但这样做无济于事。任何帮助将不胜感激。
我的第一项活动的代码:
package com.example.appli;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
public class MainActivity extends Activity {
public final static String EXTRA_MESSAGE = "com.example.myapp.MESSAGE";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.testlayout);
//////Button myButton = (Button) findViewById(R.id.my_button); //Told in tutorial to put this in onCreate
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
/** Called when the user selects the Send button */
public void sendMessage(View view) {
// Do something in response to button
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.edit_message);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
}
我的第二个活动的代码(被调用的代码)
package com.example.appli;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
public class DisplayMessageActivity extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//get message from intent
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
// Create the text view
TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText(message);
setContentView(textView);
}
}
清单
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.appli"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity android:name="com.example.myapp.DisplayMessageActivity" />
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
答案 0 :(得分:2)
在AndroidManifest文件中,您声明了错误的包
更改
<activity android:name="com.example.myapp.DisplayMessageActivity" />
到
<activity android:name="com.example.appli.DisplayMessageActivity" />
或只是
<activity android:name=".DisplayMessageActivity" />
答案 1 :(得分:1)
试试这个
<activity android:name=".DisplayMessageActivity"/>
而不是
<activity android:name="com.example.myapp.DisplayMessageActivity" />
在Manifest.xml
文件中。
答案 2 :(得分:1)
您只声明了一个也是错误的包名
的活动你的清单已经有了包名
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.appli"
所以就像这样声明
<activity android:name=".DisplayMessageActivity" />
并且您还需要在清单中添加此内容
<activity android:name=".MainActivity />
删除您提及的目标SDK版本
android:targetSdkVersion="15"
答案 3 :(得分:1)
您已在活动中定义了包package com.example.appli;
。
为什么要在清单中为您定义活动,例如<activity android:name="com.example.myapp.DisplayMessageActivity" />
?
用
替换此行 <activity android:name=".DisplayMessageActivity" />
。