我们如何在MainActivity中启动一个扩展AppCompatActivity的活动

时间:2018-05-05 06:30:01

标签: android

我使用了startActivity()方法但它没有工作。我认为这个方法不起作用,因为我的MainActivity扩展了app compat actvity。 所以请帮我在app compat活动中开始活动。 我尝试了不同的时间,但当我启动我的apk并点击按钮然后应用程序崩溃。

这是我的代码

main.xml中

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/my_toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#E96050"/>


<TableRow><Button
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:id="@+id/mainButton"
   android:text="Open Second Activity"
   android:onClick="yas"/></TableRow> </TableLayout>

MainActivity.java

package com.mycompany.myapp;

import android.app.Activity;
import android.os.*;
import android.support.v7.app.*;
import
android.support.v7.widget.Toolbar;
import android.view.*;
import android.widget.Toast;
import android.content.Intent;
import android.support.v7.app.*;


public class MainActivity extends 
AppCompatActivity {
@Override
protected void onCreate(Bundle 
savedInstanceState)
{

super.onCreate(savedInstanceState);
setContentView(R.layout.main);

    Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
    setSupportActionBar(myToolbar);




}

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    // TODO: Implement this method

    super.onCreateOptionsMenu(menu);
    CreateMenu(menu);
    return true;
}
private void CreateMenu(Menu menu) {
    MenuItem mnu1 = menu.add(0,0,0,"item1");
    {
        mnu1.setIcon(R.drawable.ic_launcher);
        mnu1.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); 
    }

}
public void yas(View vv) {
Intent iiii = new 
Intent(MainActivity.this,SecondAct.class);
startActivity(iiii);
}


}

的AndroidManifest.xml

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

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".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=".SecondActivity"
        android:label="secondActivity" 
        android:parentActivityName=".MainActivity">
        <intent-filter>
            <action android:name="SecondActivity" />

            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
    </activity>
</application>

2 个答案:

答案 0 :(得分:1)

使用此

 Intent intent=new Intent(this,Target_Activity.class);
 startActivity(intent);

然后打开您的清单文件添加此行

 <activity android:name=".Target_Activity"

      android:parentActivityName=".MainActivity">

  </activity>

答案 1 :(得分:0)

我希望你试试这段代码..

Intent intent=new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);

请将第二项活动添加到Android清单文件中。

<activity android:name=".SecondActivity"/> // define second activity name.

在Android清单文件中添加此代码..

 <activity
    android:name=".SecondActivity"
    android:label="secondActivity" >
</activity>