创建新的Android MainActivity的问题 [英] Issues with creating new Android MainActivity

查看:89
本文介绍了创建新的Android MainActivity的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是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的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆