问题描述
我是Android编程的新手,正在尝试为我的应用创建一个新的Main Activity(摘自Android教程网站).我最初的主要活动称为"MainActivity".我要成为我的主要活动的新活动称为主页",它应包含一个单击后会产生"MainActivity"的按钮.我不确定应该在清单中包含有关新页面"homepage",homepage.xml和按钮的信息的内容.具体代码将不胜感激.
I'm new to Android programming and am attempting to create a new Main Activity for my app (taken from the Android tutorial website). My original Main Activity is called "MainActivity". The new activity I want to be my Main Activity is called "Homepage" and it should contain a button that produces "MainActivity" upon clicking. I'm unsure what or where I'm supposed to include information in the manifest regarding the new page "homepage", homepage.xml, and the button. Specific code would be appreciated.
主页:
package com.myphoneapp;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class HomePage extends Activity {
private Button ScheduleBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.homepage);
ScheduleBtn = (Button) findViewById(R.id.home_btn);
ScheduleBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Intent myIntent = new Intent(HomePage.this, MainActivity.class);
HomePage.this.startActivity(myIntent);
}
});
}
}
homepage.xml:
homepage.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Welcome to ClearLight"
android:id="@+id/home_btn"
/>
</LinearLayout>
MainActivity:
MainActivity:
package com.myphoneapp;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the message from the 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);
// Set the text view as the activity layout
setContentView(textView);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
/** Called when the user clicks 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);
}
}
清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myphoneapp"
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.myphoneapp.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>
<activity
android:name="com.myphoneapp.DisplayMessageActivity"
android:label="@string/title_activity_display_message"
android:parentActivityName="com.example.myphoneapp.MainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.myphoneapp.MainActivity" />
</activity>
<activity
android:name="com.myphoneapp.HomePage"
android:label="@string/homepage" android name="MainActivity"
android:parentActivityName="com.example.myphoneapp.MainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.myphoneapp.MainActivity" />
</activity>
</application>
</manifest>
推荐答案
要使HomePage
成为您的第一个活动,请编辑清单文件,使其具有用于action.MAIN
的意图过滤器.而且您不必在清单文件中定义任何有关布局的内容.仅活动声明(您已经拥有)
To make the HomePage
your first activity, edit your Manifest file such that it has the intent filter for action.MAIN
. And you dont have to define anything about layouts in the Manifest file. Only the Activity declaration (which you already have)
所以您的新清单文件看起来像
So your new manifest file would look like
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.myphoneapp.MainActivity"
android:label="@string/title_activity_main" >
</activity>
<activity
android:name="com.myphoneapp.DisplayMessageActivity"
android:label="@string/title_activity_display_message"
android:parentActivityName="com.example.myphoneapp.MainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.myphoneapp.MainActivity" />
</activity>
<activity
android:name="com.myphoneapp.HomePage"
android:label="@string/homepage"
android:parentActivityName="com.example.myphoneapp.MainActivity" >
<!-- Move the intent filter to HomePage -->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.myphoneapp.MainActivity" />
</activity>
</application>
</manifest>
对于启动mainActivity的按钮,您已经在HomePage.java
And for the button to start mainActivity, you have already done that in HomePage.java
ScheduleBtn = (Button) findViewById(R.id.home_btn);
ScheduleBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent myIntent = new Intent(HomePage.this, MainActivity.class);
HomePage.this.startActivity(myIntent);
}
});
此代码(取自HomePage.java
的代码从意图上打开了MainActivity
This code (taken from your HomePage.java
opens MainActivity from an intent
这篇关于创建新的Android MainActivity的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!