开发者社区> 问答> 正文

隐式Intent的问题

这是按照书上仿写的一段代码,想要打开第二个Activity,但是,始终启动不了。
书上说,只要它的action,category等一致,就能找到匹配的activity,可是为什么还是打开不了。请大家帮忙看看。还有一个问题,action是不是可以自己随意设置,只要在manifest注册就行。谢谢。程序代码如下:

第一个Activity代码

package com.IWin.intent;

import android.content.Intent;
 import android.os.Bundle;
 import android.support.v7.app.ActionBarActivity;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.widget.Button;

public class MainActivity extends ActionBarActivity {
Button button;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    button=(Button)findViewById(R.id.button);
    button.setOnClickListener(new OnClickListener(){

        public void onClick(View v) {
            //显示Intent
            /*Intent intent=new Intent(MainActivity.this,SecondActivity.class);
            startActivity(intent); */
            //隐式Intent
            Intent intent=new Intent();
            intent.setAction(com.IWin.intent.SecondActivity.MARK);
            startActivity(intent);
        }

    });
}


}

package com.IWin.intent;

import android.app.Activity;
 import android.os.Bundle;
 import android.widget.TextView;

第二个Activity代码

public class SecondActivity extends Activity {
protected static final String MARK = null;
private TextView text;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.second);
    text=(TextView)findViewById(R.id.text);
}


}

manifest文件:

android:allowBackup="true"
 android:icon="@drawable/ic_launcher"
 android:label="@string/app_name"
 android:theme="@style/AppTheme" >
 android:name=".MainActivity"
 android:label="@string/app_name" >


            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity 
        android:name="com.IWin.intent.SecondActivity">
        <intent-filter >
            <action  android:name="com.IWin.intent.SecondActivity.MARK" />
            <category android:name="android.intent.category.DAFAULT"/>

        </intent-filter>            
    </activity>

展开
收起
爵霸 2016-06-12 09:47:08 2012 0
1 条回答
写回答
取消 提交回答
  • 你写错了,要么

    //隐式Intent
     Intent intent=new Intent();
     intent.setAction("com.IWin.intent.SecondActivity.MARK");
     startActivity(intent);

    要么
    protected static final String MARK = "com.IWin.intent.SecondActivity.MARK";

                    action要和manifest里定义的action的字符串一致。你写的情况,action是null!
    
    2019-07-17 19:33:13
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载