各位朋友,
谢谢大家的一贯支持。
我已经开发了一个具有登录功能的考试应用程序。
以前,该应用程序有3个活动(MainActivity、WelcomeScreenActivity和QuestionsAcvitity)。这个应用程序工作得很好。
但是,当用户从MainActivity登录时,WelcomeScreenActivity显示。但我需要在PROFILE_ACTIVITY和MainActivity之间插入另一个活动( WelcomeScreenActivity ),以便当用户成功登录时,应用程序将显示用户的PROFILEACTIVITY。
页面下面的图片
在新的 ProfileActivity之前使用以前的代码
MainActivity.java代码
@Override
protected void onPostExecute(Void result){
if (!responseData.equals( "User Not Found" )) {
message = "Welcome";
data = responseData;//store the user id from the server in data
//Bundle bundle = new Bundle();//bundle the message and parse it to the next activity
//bundle.putString("dispMsg", message);//bundle the message using the variable dispMsg
//intent.putExtras(bundle);
startActivity(intent);
statusBar.setText(message);
} else {
message = responseData;//"Incorrect Username or Password. Try again!";
statusBar.setText(message);
}
super.onPostExecute(result);
}DisplayWelcomeScreenActivity.java代码此活动在成功登录后显示。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_welcome_screen);
// Get the Intent that started this activity and extract the string
intent = getIntent();
}要从这个WelcomeActivity传递到下一个QuestionsActivity,下面的代码是在按钮单击()事件上执行的
public void courseClicked(View v) {
String course = "";
Intent intent = new Intent(this, CSS_342_Questions.class);
int qNum = 0;
switch (v.getId()){
case R.id.buttonCSS342:
course = "CSS 342";
qNum=1;
break;
case R.id.buttonCSS352:
course = "CSS 352";
qNum=1;
break;
case R.id.buttonCSS354:
course = "CSS 354";
qNum=1;
break;
case R.id.buttonCSS356:
course = "CSS 356";
qNum=1;
break;
case R.id.buttonCSS381:
course = "CSS 381";
qNum=1;
break;
case R.id.buttonPCR362:
course = "PCR 362";
qNum=1;
break;
}
Bundle bundle = new Bundle();
bundle.putString("dispCode", course);
bundle.putInt("qNum", qNum);
//bundle.putString("dispMsg", "Welcome");
intent.putExtras(bundle);
startActivity(intent);
}使用下面的代码显示QuestionsActivity。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_css_342__questions);
// Get the Intent that started this activity and extract the string
intent = getIntent();
bundle = getIntent().getExtras();
showCode = bundle.getString("dispCode");
qNum = bundle.getInt("qNum");
}下面的代码是Manifest xml,它将3项活动链接在一起以进行正确的导航。
AndroidManifest.XML代码
?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.examinationportal">
<uses-permission
android:name="android.permission.INTERNET"
android:required="true" />
<uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE"
android:required="true" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.AppCompat.DayNight.DarkActionBar">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".DisplayWelcomeScreen"
android:label="@string/welcome_screen_title"
android:parentActivityName=".MainActivity">
<!-- The meta-data tag is required if you support API level 15 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
<activity
android:name=".CSS_342_Questions"
android:allowTaskReparenting="true"
android:label="@string/question_screen"
android:parentActivityName=".DisplayWelcomeScreen">
<!-- The meta-data tag is required if you support API level 15 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".DisplayWelcomeScreen" />
</activity>
<activity
android:name=".RegisterUserActivity"
android:label="@string/new_user_form"
android:parentActivityName=".MainActivity">
<!-- The meta-data tag is required if you support API level 15 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
</application>
</manifest>现在,我想在ProfileActivity和MainActivity之间插入一个新的活动( DisplayScreenActivity )。
我已经更改了下面的AndroidManifest xml代码。这个应用程序正在崩溃。LogCat显示应用程序在MainActivity.java中崩溃**StartActivity(intent)**的行;第153行
新活动后的代码
MainActivity代码仍然保持不变。
新的AndroidManifest.xml代码
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.examinationportal">
<uses-permission
android:name="android.permission.INTERNET"
android:required="true" />
<uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE"
android:required="true" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.AppCompat.DayNight.DarkActionBar">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ProfileAcvitity"
android:label="@string/student_profile"
android:parentActivityName=".MainActivity">
<!-- The meta-data tag is required if you support API level 15 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
<activity
android:name=".RegisterUserActivity"
android:label="@string/new_user_form"
android:parentActivityName=".MainActivity">
<!-- The meta-data tag is required if you support API level 15 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
</application>
</manifest>新ProfileActivity.java码
public class ProfileAcvitity extends AppCompatActivity {
public Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile_acvitity);
intent = getIntent();
}LOGCAT信息
04-25 13:53:33.680 14789-14789/com.example.examinationportal E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.examinationportal, PID: 14789
android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.examinationportal/com.example.examinationportal.DisplayWelcomeScreen}; 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:4034)
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:3986)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:859)
at android.app.Activity.startActivity(Activity.java:4325)
at android.app.Activity.startActivity(Activity.java:4293)
at com.example.examinationportal.MainActivity$GetText.onPostExecute(MainActivity.java:153)
at com.example.examinationportal.MainActivity$GetText.onPostExecute(MainActivity.java:83)
at android.os.AsyncTask.finish(AsyncTask.java:651)
at android.os.AsyncTask.-wrap1(AsyncTask.java)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:668)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5763)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)请帮我解决这个问题。
谢谢。




发布于 2017-04-25 13:31:42
<activity android:name=".DisplayWelcomeScreen"
android:label="@string/student_welcome"
android:parentActivityName=".MainActivity">
<!-- The meta-data tag is required if you support API level 15 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>在AndroidManifest.xml文件中添加这些行将解决问题。
https://stackoverflow.com/questions/43611184
复制相似问题